/*! @license
IRAN Sans-serif fonts are considered a proprietary software. To gain information
about the laws regarding the use of these fonts, please visit www.fontiran.com
--------------------------------------------------------------------------------------
This set of fonts are used in this project under the license: ZBKULDSR
--------------------------------------------------------------------------------------
See /fonts/FontLicense.txt. This project license does not permit font reuse.
*/
/*! 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)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.contents{display:contents}.grid{display:grid}.hidden{display:none}.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,)}.resize{resize:both}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Site Manrope;src:url(/fonts/manrope-latin-variable.woff2)format("woff2");font-style:normal;font-weight:200 800;font-display:swap}@font-face{font-family:Site Newsreader;src:url(/fonts/newsreader-latin-variable.woff2)format("woff2");font-style:normal;font-weight:200 800;font-display:swap}@font-face{font-family:Site IRANSansX;src:url(/fonts/iransansx-variable.woff2)format("woff2");font-style:normal;font-weight:100 1000;font-display:swap;unicode-range:u+6??,u+750-77f,u+8a0-8ff,u+200c-200d,u+fb50-fdff,u+fe70-feff}:root{--font-sans:"Site Manrope","Site IRANSansX";--font-editorial:"Site Newsreader";--font-persian:"Site IRANSansX";--canvas:#f8f7f3;--paper:#fffefa;--ink:#192e2a;--muted:#465650;--accent:#205e4d;--accent-dark:#173f35;--line:#c3cdc4;--wash:#e9eee6;--gutter:clamp(22px,5vw,72px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{background:var(--canvas);color:var(--ink);font-family:var(--font-sans),sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.75}[lang=fa],html[lang=fa] body{font-family:var(--font-persian),var(--font-sans),Tahoma,sans-serif;line-height:1.95}::selection{background:#c9ded1}a{color:inherit;text-decoration:none}a,button,summary{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}main:focus{outline:none}figure,h1,h2,h3,h4,p{margin:0}h1,h2{font-family:var(--font-editorial),Georgia,serif;letter-spacing:-.02em;text-wrap:balance;font-weight:500;line-height:1.18}h1{font-size:42px}h2{font-size:30px}h3{font-size:18px;font-weight:650;line-height:1.5}h4{font-size:16px;font-weight:600;line-height:1.6}[lang=fa] h1,[lang=fa] h2{font-family:var(--font-persian),var(--font-sans),sans-serif;letter-spacing:0;font-weight:650;line-height:1.6}[lang=fa] h3,[lang=fa] h4{line-height:1.8}p{color:var(--muted)}p+p{margin-top:16px}svg{flex-shrink:0}code{overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.9em}.shell{width:min(100% - var(--gutter) * 2,1120px);margin-inline:auto}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:650;line-height:1.7}[lang=fa] .eyebrow{letter-spacing:0;font-size:14px}.skip-link{background:var(--accent-dark);color:#fff;z-index:100;top:12px;padding:12px 24px;position:fixed;inset-inline-start:16px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;background:var(--canvas);border-bottom:1px solid var(--line);position:relative}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:84px;display:flex}.brand{letter-spacing:-.02em;font-size:16px;font-weight:700;line-height:1.5}[lang=fa] .brand{letter-spacing:0;font-size:18px}.header-controls{gap:28px}.header-controls,.navigation{align-items:center;display:flex}.navigation{gap:25px}.navigation a{min-height:44px;color:var(--muted);align-items:center;font-size:15px;display:flex;position:relative}.navigation a[aria-current=page]{color:var(--accent-dark);font-weight:700}.navigation a[aria-current=page]:after{content:"";background:var(--accent);bottom:0;height:2px;position:absolute;inset-inline:0}.navigation a:hover{color:var(--accent)}.menu-button{display:none}.language-switch{border-inline-start:1px solid var(--line);align-items:center;min-height:44px;padding-inline-start:22px;font-size:14px;font-weight:600;display:flex}.language-switch[lang=fa]{font-size:16px}.text-link{min-height:44px;color:var(--accent);align-items:center;gap:10px;font-size:15px;font-weight:650;line-height:1.6;display:inline-flex}.button-primary svg,.text-link svg{width:18px;height:18px}.button-primary{background:var(--accent-dark);min-height:48px;color:var(--paper);border:1px solid var(--accent-dark);justify-content:center;align-items:center;gap:16px;padding:11px 20px;font-size:15px;font-weight:600;display:inline-flex}.button-primary:hover{background:var(--accent);color:#fff}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:24px;display:flex}[dir=rtl] .arrow-forward{transform:scaleX(-1)}.home-intro{max-width:850px;padding-block:56px 42px}.home-intro h1{margin:15px 0 23px;font-size:clamp(40px,4.2vw,54px)}.home-description{color:var(--ink);max-width:850px;font-size:22px;line-height:1.65}.supervisor{margin-top:8px;font-size:15px}.home-work{border-top:1px solid var(--line);padding-block:32px}.section-heading{grid-template-columns:1fr 1.2fr;align-items:start;gap:40px;margin-bottom:28px;display:grid}.section-heading>p{max-width:600px;font-size:16px}.work-directions{grid-template-columns:1fr 1fr;gap:45px;display:grid}.work-directions article{border-top:2px solid var(--accent);min-width:0;padding-top:18px}.work-directions h3{margin:10px 0;font-size:22px;font-weight:600}.work-directions h3 a{justify-content:space-between;align-items:center;gap:16px;display:flex}.work-directions h3 svg{width:21px}.work-directions>article>p:not(.eyebrow){max-width:490px;font-size:16px}[lang=fa] .home-description{font-size:22px;line-height:1.9}[lang=fa] .home-intro h1{font-size:46px}.site-footer{background:var(--wash);border-top:1px solid var(--line)}.footer-main{justify-content:space-between;align-items:center;gap:25px;padding-block:25px;display:flex}.footer-brand{font-size:15px;font-weight:650}.footer-brand small{color:var(--muted);margin-top:5px;font-size:12px;font-weight:400;display:block}.footer-links{flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.footer-links a{align-items:center;gap:7px;min-height:44px;display:flex}.footer-links svg{width:14px}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:20px;padding-block:13px;font-size:12px;display:flex}.page-intro{max-width:850px;padding-block:40px 30px}.page-intro h1{font-size:40px}.page-intro .eyebrow{margin-bottom:12px}.page-lead{max-width:850px;font-size:18px;line-height:1.75}.page-intro .page-lead{margin-top:18px}.projects-page,.research-page{padding-bottom:40px}.research-detail{border-top:1px solid var(--line);grid-template-columns:155px 1fr;gap:40px;padding-block:30px 36px;display:grid}.ongoing{color:var(--accent);border:1px solid #9fb7a8;padding:4px 8px;font-size:12px;line-height:1.6;display:inline-block}[lang=fa] .ongoing{font-size:13px}.research-detail-body{min-width:0;max-width:830px}.research-detail h2{margin-bottom:24px;font-size:30px}dt{color:var(--ink);font-weight:650}dd{color:var(--muted);margin:0}.direction-pair{grid-template-columns:1fr 1fr;gap:25px;margin-block:25px;display:grid}.direction-pair>div{border-top:2px solid var(--accent);padding-top:14px}.direction-pair h3{margin-bottom:10px;font-size:16px}.direction-pair p{font-size:15px}.project-index-row{border-top:1px solid var(--line);grid-template-columns:1.25fr 1fr;gap:60px;padding-block:28px;display:grid}.index-title h2{margin:10px 0 12px;font-size:30px}.index-title h2 a{align-items:center;gap:18px;display:inline-flex}.index-title svg{width:20px}.index-title>p:not(.eyebrow){max-width:580px;font-size:16px}.project-stack{color:var(--muted);unicode-bidi:isolate;font-size:14px;font-weight:500}.index-links{flex-wrap:wrap;gap:20px;display:flex}.index-links a{min-height:44px;color:var(--accent);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.index-links svg{width:16px}.earlier-row{padding-top:28px}.project-breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;padding-top:25px;font-size:13px;display:flex}.project-breadcrumb a{color:var(--accent)}.project-intro{max-width:920px;padding-block:25px}.project-intro h1{margin-block:10px 18px;font-size:42px}.project-intro .page-lead{max-width:850px}.project-quick-links{flex-wrap:wrap;align-items:center;gap:20px 35px;margin-top:16px;display:flex}.project-section{margin-bottom:30px;scroll-margin-top:25px}.project-section>h2{margin-bottom:18px;font-size:29px}.project-section>h3{margin:22px 0 10px;font-size:17px}.project-section>p{font-size:16px}.explanation{border:1px solid var(--line);background:var(--paper);padding:24px}.diagram-heading{margin-bottom:18px}.diagram-heading h3{font-size:18px;font-weight:650}.diagram-heading p{margin-top:7px;font-size:14px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:start;width:100%;font-size:15px}td,th{border-bottom:1px solid var(--line);padding:10px 13px}thead{background:var(--wash)}thead th{font-weight:600}tbody th{color:var(--accent)}.group-results{grid-template-columns:1fr 1fr;gap:25px;margin-top:20px;display:grid}.group-results p{font-size:14px}.group-chips{gap:10px;margin-block:12px;display:flex}.group-chips span{border:1.5px solid var(--accent);background:var(--wash);color:var(--accent-dark);padding:4px 17px;font-size:15px;font-weight:600;display:inline-block}.input-columns{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.input-columns>div{background:var(--wash);text-align:center;border:1.5px solid #789986;padding:14px 10px}.input-columns h3{font-size:15px}.input-columns p{margin-top:8px;font-size:13px}.diagram-arrow{text-align:center;color:var(--accent);font-size:21px;line-height:1.5}.model-stage{text-align:center;border:1.5px solid #789986;max-width:610px;margin:auto;padding:11px 16px;font-size:15px}.strong-stage{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.output-stage{text-align:center;font-size:15px}.output-stage p{margin-top:4px;font-size:13px}.explainer-steps{gap:0;margin:0;padding:0;list-style:none;display:grid}.explainer-steps li{border-top:1px solid var(--line);gap:20px;padding:17px 0;display:flex}.explainer-steps li>span{color:var(--accent);padding-top:4px;font-size:13px;font-weight:650}.explainer-steps h3{margin-bottom:5px;font-size:17px}.explainer-steps p{font-size:16px}.technical-details{border-block:1px solid var(--line);margin-top:18px}.technical-details summary{cursor:pointer;color:var(--accent);justify-content:space-between;align-items:center;gap:25px;padding:14px 0;font-size:15px;font-weight:650;list-style:none;display:flex}.technical-details summary::-webkit-details-marker{display:none}.technical-details summary>span{font-size:21px}.technical-details[open] summary>span{transform:rotate(45deg)}.technical-body{padding:0 0 20px}.technical-body h3{margin:18px 0 8px;font-size:16px}.technical-body p{font-size:15px}.definition-list{margin-top:15px}.definition-list>div{border-top:1px solid var(--line);padding-block:13px}.definition-list dt{margin-bottom:5px;font-size:15px}.definition-list dd,.limitations{font-size:15px}.limitations{color:var(--muted);margin:0;padding-inline-start:22px;line-height:1.8}.limitations li+li{margin-top:9px}.source-links{flex-wrap:wrap;gap:8px 24px;display:flex}.source-links a{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;gap:9px;font-size:14px;text-decoration:underline;display:inline-flex}.source-links svg{width:15px}.project-section .source-note{margin-top:14px;font-size:13px}.source-section{padding-top:24px}.project-end,.source-section{border-top:1px solid var(--line)}.project-end{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding-block:18px 35px;display:flex}.project-end .text-link{font-size:14px}.about-page{padding-bottom:45px}.bio-copy{max-width:800px}.bio-copy p{font-size:17px}.contact-layout{grid-template-columns:1fr 1fr;gap:65px;padding-top:26px;display:grid}.email-block>h3{color:var(--muted);font-size:14px;font-weight:600}.email-link{letter-spacing:-.025em;color:var(--accent);border-bottom:1px solid var(--accent);align-items:center;gap:16px;max-width:100%;margin-block:12px 16px;font-size:27px;font-weight:550;line-height:1.6;display:inline-flex}.email-link svg{width:19px}.email-block p{font-size:15px}.contact-profiles>a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-block:14px;display:flex}.contact-profiles>a:first-child{padding-top:0}.contact-profiles h3{margin-bottom:3px;font-size:17px;font-weight:600}.contact-profiles span{color:var(--muted);font-size:14px}.contact-profiles svg{width:17px}.contact-page{min-height:65vh;padding-bottom:50px}.contact-page>.contact-layout{border-top:1px solid var(--line)}.cv-page{max-width:1020px;padding-bottom:35px}.cv-page .page-intro{padding-block:30px 18px}.cv-page .page-intro h1{font-size:34px}.cv-page .page-lead{margin-top:14px;font-size:16px}.cv-page .page-lead a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.cv-format-note{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;font-size:13px;display:flex}.print-button{border:1px solid var(--line);min-height:40px;color:var(--accent);background:0 0;flex-shrink:0;padding:5px 12px;font-size:13px}.cv-section{border-top:1px solid var(--line);grid-template-columns:170px 1fr;gap:28px;padding-block:23px;display:grid}.cv-section>h2{font-family:var(--font-sans);letter-spacing:0;font-size:15px;font-weight:650;line-height:1.7}.cv-section p{font-size:15px}.cv-section h3{font-size:17px;font-weight:600}.cv-section .text-link{margin-top:7px;font-size:14px}.record-list{gap:22px;display:grid}.record-date{color:var(--accent);font-size:14px}.record h3{margin-top:6px}.record-institution{color:var(--ink);margin-top:5px;font-size:15px}.record p:not(.record-institution){margin-top:9px;font-size:14px}.teaching-list{margin:15px 0 0;padding:0;list-style:none}.teaching-list li{border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding-block:9px;font-size:15px;display:flex}.teaching-list li span:last-child:not(:first-child){color:var(--muted);font-size:14px}.cv-profiles{gap:9px;font-size:15px;display:grid}.cv-profiles a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.not-found{min-height:65vh;padding-block:65px}.not-found h1{margin-bottom:20px}.recovery-persian{border-top:1px solid var(--line);margin-top:40px;padding-top:25px}.recovery-persian h2{margin-bottom:15px}@media (max-width:1000px){.header-controls,.navigation{gap:20px}.brand{font-size:15px}.language-switch{padding-inline-start:17px}.contact-layout,.project-index-row{gap:35px}.email-link{font-size:24px}.footer-main{flex-direction:column;align-items:start;gap:12px}}@media (max-width:820px){.header-inner{min-height:76px}.header-controls{gap:18px}.menu-button{background:0 0;border:0;align-items:center;gap:12px;min-height:44px;padding:6px 0;font-size:14px;display:flex}.menu-button span{font-size:22px}.navigation{background:var(--canvas);border-bottom:1px solid var(--line);padding:14px var(--gutter) 20px;top:100%;display:none;position:absolute;inset-inline:0;box-shadow:0 12px 16px #192e2a0b}.navigation.is-open{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.navigation a{border-bottom:1px solid var(--line);min-height:48px;font-size:16px}.navigation a[aria-current=page]:after{display:none}.section-heading{grid-template-columns:1fr;gap:15px}.work-directions{gap:30px}.home-intro{padding-top:38px}.home-description{font-size:21px}.research-detail{grid-template-columns:1fr;gap:18px}.project-index-row{grid-template-columns:1fr;gap:15px}.contact-layout{grid-template-columns:1fr;gap:30px}.cv-section{grid-template-columns:135px 1fr;gap:20px}.footer-brand small{font-size:12px}}@media (max-width:560px){body{font-size:16px}.header-inner{gap:14px}.brand{max-width:180px;font-size:13px}.header-controls{gap:12px}.menu-button{gap:7px;font-size:13px}.language-switch{padding-inline-start:12px;font-size:12px}.language-switch[lang=fa]{font-size:14px}[lang=fa] .brand{font-size:16px}[lang=fa] .menu-button{font-size:14px}.home-intro h1{font-size:39px;line-height:1.15}.home-description{font-size:19px;line-height:1.75}[lang=fa] .home-intro h1{font-size:35px}[lang=fa] .home-description{font-size:20px}.supervisor{font-size:14px}.hero-actions{gap:15px}.button-primary,.text-link{font-size:14px}.button-primary{padding-inline:15px}.home-work{padding-block:27px}.section-heading h2{font-size:28px}.section-heading>p{font-size:15px}.work-directions{grid-template-columns:1fr;gap:28px}.work-directions h3{font-size:21px}.page-intro{padding-block:30px 25px}.page-intro h1{font-size:35px}.page-intro .page-lead{margin-top:15px;font-size:17px}.research-detail h2{font-size:27px}.direction-pair{grid-template-columns:1fr;gap:20px}.index-title h2{font-size:28px}.index-title>p:not(.eyebrow){font-size:16px}.project-breadcrumb{gap:10px;padding-top:20px;font-size:12px}.project-intro h1{overflow-wrap:anywhere;font-size:35px}.project-intro .page-lead{font-size:17px}.project-quick-links{gap:12px 25px;margin-top:12px}.project-section>h2{font-size:27px}.explanation{padding:18px 15px}.diagram-heading h3{font-size:17px}.diagram-heading p{font-size:13px}.group-results{grid-template-columns:1fr;gap:20px}.grouping-example table{min-width:425px}td,th{padding:9px 11px;font-size:14px}.input-columns{grid-template-columns:1fr;gap:11px}.input-columns>div{padding:11px}.input-columns p{margin-top:4px}.model-stage{padding:10px}.model-stage,.output-stage{font-size:14px}.explainer-steps li{gap:14px}.explainer-steps p,.technical-body h3{font-size:15px}.definition-list dd,.definition-list dt,.technical-body p{font-size:14px}.project-end{display:block}.project-end .text-link{display:flex}.source-links{gap:0;display:grid}.source-links a{font-size:14px}.bio-copy p{font-size:16px}.email-link{gap:12px;font-size:clamp(21px,5.7vw,26px)}.email-link svg{width:17px}.cv-page .page-intro h1{font-size:29px}.cv-page .page-lead{font-size:15px}.cv-section{grid-template-columns:1fr;gap:15px}.cv-section>h2{color:var(--accent)}.cv-format-note{align-items:start;font-size:12px}.print-button{padding-inline:9px;font-size:12px}.cv-section h3{font-size:16px}.footer-links{gap:17px;font-size:13px}.footer-bottom{gap:10px;font-size:11px}.footer-brand{font-size:14px}.not-found h1{font-size:35px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}}@media print{.cv-format-note,.print-button,.site-footer,.site-header,.skip-link{display:none}body{color:#000;background:#fff;font-size:11pt}.shell{width:100%}.page-intro{padding-block:15px 20px}.cv-section{break-inside:avoid;grid-template-columns:145px 1fr;padding-block:15px}.cv-page{padding:0}.cv-page .page-intro h1{font-size:26pt}.cv-page .page-lead,.cv-section p{font-size:10pt}.cv-section>h2{font-size:11pt}.cv-section .text-link{display:none}}.home-intro{grid-template-columns:minmax(0,1fr) 252px;align-items:center;gap:48px;max-width:none;display:grid}.home-intro-copy{min-width:0}.profile-portrait{background:var(--wash);border:1px solid var(--line);overflow:hidden}.profile-portrait img{width:100%;height:auto;display:block}@media (max-width:1000px){.home-intro{grid-template-columns:minmax(0,1fr) 210px;gap:30px}.home-intro h1{font-size:43px}}@media (max-width:700px){.home-intro{grid-template-columns:1fr;gap:24px}.home-intro h1{font-size:39px}}@media print{.profile-portrait{display:none}.home-intro{display:block}}.identity-line{color:var(--accent);margin-bottom:16px;font-size:19px;font-weight:650;line-height:1.5}.home-description{max-width:66ch;font-size:20px}.article-prose,.bio-copy,.research-detail-body{max-width:72ch}.project-article>.article-prose,.project-end.article-prose,.project-intro.article-prose,.project-section.article-prose{margin-inline:auto}.project-intro.article-prose{max-width:72ch}.research-detail{max-width:84ch;display:block}.research-title{flex-wrap:wrap;align-items:center;gap:15px 24px;margin-bottom:20px;display:flex}.research-title h2{margin:0}.research-detail-body>h3{margin:22px 0 8px}.research-purpose{color:var(--ink);font-size:18px}.project-period{color:var(--muted);margin-top:12px;margin-bottom:0;font-size:13px}.milestone{border-inline-start:3px solid var(--accent);margin-top:22px;padding-inline-start:18px;font-size:15px}.project-category{margin-bottom:35px}.project-category>h2{margin-bottom:18px;font-size:27px}.project-index-row{max-width:78ch;padding-block:24px;display:block}.index-title h3{font-family:var(--font-editorial);margin:9px 0 12px;font-size:30px;font-weight:500}[lang=fa] .index-title h3{font-family:var(--font-persian);font-size:25px;font-weight:650}.index-title .project-stack{margin-top:12px;font-size:13px}.index-links{margin-top:9px}.earlier-projects{background:var(--wash);border-top:1px solid var(--line);padding:23px 26px}.earlier-projects>h2{font-size:22px}.earlier-projects .project-index-row{border:0;padding-bottom:0}.earlier-projects .index-title h3{font-size:25px}.project-section-nav{border-block:1px solid var(--line);color:var(--accent);flex-wrap:wrap;gap:10px 25px;margin-bottom:28px;padding-block:11px;font-size:14px;display:flex}.project-section-nav a{align-items:center;min-height:36px;display:flex}.project-article>.project-section{margin-bottom:30px}.project-article>.project-section>h2{margin-bottom:15px;font-size:28px}.collaboration-credit{color:var(--muted);font-size:14px!important}.term-note{border-inline-start:2px solid var(--line);margin-block:20px;padding-inline-start:17px;font-size:15px!important}.evidence-column{max-width:900px;margin-inline:auto}.evidence-display{border:1px solid var(--line);background:var(--paper);padding:24px}.evidence-display h3{margin-bottom:14px;font-size:19px}.evidence-display p{max-width:78ch;margin-block:14px;font-size:15px}.evidence-display .table-scroll{margin-block:18px}.evidence-display table{font-size:15px}.artifact-downloads a,.evidence-fixture>a,.evidence-source{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;font-size:14px;text-decoration:underline;display:inline-flex}.artifact-downloads{flex-wrap:wrap;gap:12px 25px;display:flex}.evidence-fixture{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.evidence-fixture summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--wash);margin:15px 0;padding:16px;font-size:13px;line-height:1.65}.gameplay-figure img{width:100%;height:auto;display:block}.gameplay-figure figcaption{color:var(--muted);margin-top:14px;font-size:14px;line-height:1.75}.gameplay-figure figcaption a{color:var(--accent);text-decoration:underline}.scope-summary{border-inline-start:3px solid var(--accent);max-width:80ch;margin-top:18px;padding-inline-start:17px;font-size:15px}.source-links small{font-size:12px}.project-end{display:block}.project-end>p{font-size:14px}.adjacent-projects{flex-wrap:wrap;justify-content:space-between;gap:10px 25px;margin-top:8px;display:flex}.compact-contact{border-top:1px solid var(--line);max-width:78ch;padding-block:25px 35px}.compact-contact h2{margin-bottom:12px;font-size:25px}.compact-contact p{font-size:16px}.compact-contact .hero-actions{margin-top:9px}.contact-profiles h2{letter-spacing:0;margin-bottom:4px;font-size:18px}.contact-profiles h2,.email-block>h2{font-family:var(--font-sans);font-weight:600}.email-block>h2{font-size:15px}.cv-section{padding-block:24px;display:block}.cv-section>h2{font-family:var(--font-editorial);margin-bottom:23px;font-size:27px;font-weight:600}[lang=fa] .cv-section>h2{font-family:var(--font-persian);font-size:24px}.cv-format-note{flex-wrap:wrap;align-items:start}.cv-download-actions{align-items:center;gap:14px;display:flex}.cv-download-actions .button-primary{min-height:42px;font-size:13px}.cv-entry-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 25px;display:flex}.cv-entry-heading>span{color:var(--muted);font-size:12px}.cv-projects{gap:24px;display:grid}.cv-projects article{break-inside:avoid}.cv-projects article p,.cv-url{margin-top:8px}.cv-url{overflow-wrap:anywhere;color:var(--accent);font-size:13px;line-height:1.5;display:block}.skills-groups{gap:15px;margin:0;display:grid}.skills-groups>div{grid-template-columns:180px 1fr;gap:20px;font-size:15px;display:grid}.teaching-groups section+section{margin-top:22px}.teaching-groups h3{margin-bottom:9px}.teaching-groups>p{margin-top:16px}@media (max-width:820px){.header-controls{gap:16px}.home-description{font-size:19px}.evidence-display{padding:20px}}@media (max-width:700px){.home-intro{flex-direction:column;align-items:start;display:flex}.home-intro-copy{width:100%}.project-article>.project-section>h2{font-size:25px}.evidence-display table{min-width:480px}.skills-groups>div{grid-template-columns:1fr;gap:4px}.cv-section>h2{font-size:25px}.cv-entry-heading{display:block}.cv-entry-heading>span{margin-top:6px;display:block}.index-links{gap:10px 20px}.identity-line{font-size:17px}}@media print{.cv-format-note{margin-bottom:14px;font-size:9pt;display:block!important}.cv-download-actions,.print-button{display:none!important}.cv-section{break-inside:auto;padding-block:15px;display:block}.cv-section>h2{margin-bottom:14px;font-size:16pt!important}.cv-projects article,.record,.teaching-groups section{break-inside:avoid}.cv-url{color:#000;font-size:9pt;display:block!important}.cv-section .text-link{display:inline-flex}.cv-page .page-intro{padding-block:10px 16px}.cv-projects{gap:18px}.cv-entry-heading>span{font-size:9pt}.cv-section h3{font-size:12pt}.skills-groups>div{font-size:10pt}.cv-page{max-width:none}}.home-background,.home-software{border-top:1px solid var(--line);padding-block:34px}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.featured-project{border:1px solid var(--line);background:var(--paper,#fffefa);flex-direction:column;padding:24px;display:flex}.featured-project h3{margin-block:12px;font-size:23px;line-height:1.35}.featured-project>p:not(.project-stack){flex:1;font-size:16px;line-height:1.7}.featured-project .index-links{flex-wrap:wrap;font-size:14px}.featured-project .project-stack{color:var(--accent);font-size:13px}.home-background{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:center;gap:clamp(38px,6vw,76px);display:grid}.home-background-copy{gap:32px;display:grid}.background-story h2{margin-bottom:15px;font-size:30px}.background-story p{max-width:60ch}.credential-strip{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:24px 32px;margin:0;display:grid}.credential-strip dt{font-size:16px;font-weight:700}.credential-strip dd{color:var(--muted);margin:8px 0 0;font-size:14px}.academic-glance{border:1px solid var(--line);background:var(--wash);width:100%;padding:25px}.academic-glance h2{margin-bottom:20px;font-size:27px}.academic-glance dl{gap:20px;margin:0;display:grid}.academic-glance dt{color:var(--accent);font-size:14px;font-weight:700}.academic-glance dd{margin:5px 0 0;font-size:15px}.about-biography-portrait,.home-background-portrait{background:var(--wash);border-color:var(--line);border-radius:24px;margin:0}@supports (color:color-mix(in lab,red,red)){.about-biography-portrait,.home-background-portrait{border-color:color-mix(in srgb,var(--line) 75%,transparent)}}.home-background-portrait{justify-self:end;width:min(100%,320px)}.about-biography-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:center;gap:clamp(38px,6vw,72px);display:grid}.about-biography-portrait{justify-self:end;width:min(100%,360px)}.about-page>.academic-glance{max-width:880px;margin-top:48px}.project-section>.explanation{margin-block:24px}#definitions{margin-block:25px}#definitions>h3{margin-bottom:12px}.documentation-language{color:var(--muted);font-size:14px!important}.cv-url{margin-inline-end:20px;font-size:14px;display:inline-flex}.teaching-groups>.teaching-role{color:var(--accent);margin:0 0 20px}.contact-affiliation{max-width:65ch;color:var(--muted);margin-bottom:25px}[lang=fa] h1,[lang=fa] h2{font-weight:750;line-height:1.35}@media (max-width:950px){.featured-grid{grid-template-columns:1fr}.home-background{grid-template-columns:minmax(0,1fr) 280px;gap:30px}.credential-strip{grid-template-columns:1fr}.about-biography-layout{grid-template-columns:minmax(0,1fr) 280px;gap:30px}}@media (max-width:700px){.home-background{grid-template-columns:1fr}.about-biography-portrait,.home-background-portrait{justify-self:center;width:min(82vw,320px)}.about-biography-layout{grid-template-columns:1fr}.about-page>.academic-glance{margin-top:38px}.academic-glance{max-width:100%}.home-software .section-heading{align-items:start}.featured-project{padding:20px}.credential-strip{padding-top:5px}}@media print{.cv-url{display:block!important}.cv-page a[data-print-url]:after{content:" — " attr(data-print-url);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:8pt}.cv-page a[href^=https\:]:not([data-print-url]):after{content:" — " attr(href);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;font-size:8pt}}.home-intro.antibody-intro{isolation:isolate;grid-template-columns:minmax(0,.46fr) minmax(0,.54fr);align-items:center;gap:clamp(18px,3vw,46px);min-height:650px;padding-block:38px 46px}.antibody-intro h1{text-wrap:balance;max-width:none;margin-block:16px 22px;font-size:clamp(40px,4.05vw,57px);line-height:1.08}.antibody-intro .identity-line{text-wrap:balance;max-width:29ch;margin-bottom:21px;font-size:clamp(21px,2vw,27px);font-weight:600;line-height:1.45}.antibody-intro .home-description{max-width:52ch;font-size:17px;line-height:1.8}.antibody-intro .hero-actions{gap:16px 26px;margin-top:27px}.antibody-hero{aspect-ratio:1;direction:ltr;align-self:center;width:100%;min-width:0;position:relative}.antibody-stage{background:0 0;position:absolute;inset:0}.antibody-stage canvas,.antibody-stage img,.antibody-stage video{object-fit:contain;background:0 0;border:0;border-radius:0;width:100%;height:100%;position:absolute;inset:0;transform:none}.antibody-canvas,.antibody-video{opacity:0;pointer-events:none}.antibody-stage.is-animated .antibody-canvas{opacity:1}.antibody-stage.is-animated .antibody-poster{opacity:0}.antibody-motion-toggle{min-height:44px;color:var(--muted);inset-inline-end:9px;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:inline-flex;position:absolute;bottom:0}.antibody-motion-toggle:hover{color:var(--accent)}[lang=fa] .antibody-intro h1{max-width:15ch;line-height:1.4}[lang=fa] .antibody-intro .identity-line{line-height:1.65}[lang=fa] .antibody-intro .home-description{font-size:17px;line-height:2}[lang=fa] .antibody-motion-toggle{direction:rtl}@media (min-width:1500px){.home-intro.antibody-intro{min-height:700px}}@media (min-width:701px) and (max-width:1050px){.home-intro.antibody-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;min-height:590px}.antibody-intro h1{font-size:clamp(37px,4.5vw,47px)}.antibody-intro .identity-line{font-size:22px}.antibody-intro .home-description{font-size:16px}.antibody-intro .hero-actions{gap:12px 18px}}@media (max-width:700px){.home-intro.antibody-intro{flex-direction:column;gap:10px;min-height:0;padding-block:34px 24px;display:flex}.antibody-intro h1{max-width:16ch;font-size:clamp(37px,9vw,48px)}.antibody-intro .identity-line{max-width:30ch;font-size:22px}.antibody-intro .home-description{font-size:17px}.antibody-hero{align-self:center;width:min(100%,480px)}.antibody-motion-toggle{inset-inline-end:10px;bottom:-4px}}@media (prefers-reduced-motion:reduce){.antibody-canvas,.antibody-motion-toggle,.antibody-video{display:none!important}.antibody-stage .antibody-poster{opacity:1!important}}@media print{.antibody-canvas,.antibody-motion-toggle,.antibody-video{display:none!important}.antibody-stage .antibody-poster{opacity:1!important}}.structure-info{z-index:4;max-width:calc(100% - 130px);position:absolute;bottom:0;left:0}.structure-info summary{cursor:pointer;min-height:44px;color:var(--accent);border-radius:7px;align-items:center;gap:7px;padding:7px 10px;font-size:12px;list-style:none;display:flex}.structure-info summary::-webkit-details-marker{display:none}.structure-info summary:hover,.structure-info[open] summary{background:var(--wash)}.structure-info summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.structure-info-card{background:var(--paper,#fffefa);border:1px solid var(--line);border-radius:14px;width:min(370px,100vw - 48px);padding:24px;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 12px 38px #192e2a1f}.structure-info-id{color:var(--accent);letter-spacing:.1em;font-size:11px;font-weight:600;display:block}.structure-info-card h2{margin:10px 0 12px;font-size:23px;line-height:1.3}.structure-info-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.75}.structure-info-card a{color:var(--accent);align-items:center;gap:8px;margin-top:17px;font-size:12px;display:inline-flex}[lang=fa] .structure-info,[lang=fa] .structure-info-card{left:auto;right:0}[lang=fa] .structure-info-id{text-align:right}[lang=fa] .structure-info-card p{line-height:1.95}@media print{.structure-info{display:none}}@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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}