:root{color-scheme:light;--navy:#11273c;--ink:#122436;--blue:#1e65c5;--accent:#86bafe;--muted:#566575;--line:#d8e0e8;--paper:#f3f6f9;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:#cde2ff;color:var(--navy)}.skip-link{position:fixed;top:-60px;left:16px;background:#fff;padding:12px 20px;z-index:20}.skip-link:focus{top:10px}.site-header{max-width:1440px;margin:auto;padding:21px 6%;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:17px;font-weight:700;display:flex;align-items:center;gap:13px}.monogram{background:var(--navy);color:#fff;display:grid;place-items:center;width:38px;height:38px;font-size:13px;letter-spacing:.01em}.site-header nav{display:flex;gap:32px;font-size:14px;font-weight:600}.site-header nav a:hover{color:var(--blue)}.hero{background:var(--navy);color:#fff}.hero-inner{max-width:1268px;margin:auto;padding:68px 44px 65px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:78px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700;color:#b5cde8;margin-bottom:20px}.eyebrow.dark{color:#526d87;margin-bottom:12px}h1{font-size:clamp(44px,5.6vw,76px);line-height:1.06;letter-spacing:-.045em;font-weight:700;margin-bottom:23px}.name-period{color:var(--accent)}.role-line{font-size:clamp(23px,2.2vw,31px);line-height:1.3;font-weight:400;letter-spacing:-.015em;color:#e8f2ff;margin-bottom:20px}.hero-description{max-width:530px;color:#bfd0e1;font-size:17px;line-height:1.75}.hero-links{display:flex;align-items:center;gap:28px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:48px;padding:12px 20px;font-size:14px;font-weight:700;transition:background .15s,transform .15s}.button:hover{transform:translateY(-2px)}.button-light{color:var(--navy);background:#fff}.button-light:hover{background:#e1edff}.button-navy{color:#fff;background:var(--navy);margin-top:28px}.button-navy:hover{background:#23496e}.text-link{font-size:15px;border-bottom:1px solid #6d8baa;padding:7px 0}.text-link:hover{color:var(--accent)}.portrait{align-self:center}.portrait img{width:280px;height:310px;object-fit:cover;object-position:50% 40%;border-radius:1px}.portrait figcaption{font-size:12px;line-height:1.6;color:#b5c9dc;margin-top:14px;text-align:center}.section-wrap{max-width:1180px;margin:auto;padding-left:40px;padding-right:40px}.experience{padding-top:68px;padding-bottom:66px}.section-intro{display:grid;grid-template-columns:1.4fr 1fr;column-gap:65px}.section-intro .eyebrow{grid-column:1/-1}h2{font-size:clamp(29px,3vw,40px);line-height:1.18;font-weight:600;letter-spacing:-.035em}.employment{font-size:15px;padding-top:4px;font-weight:700}.employment span{font-size:14px;color:var(--muted);font-weight:400;display:block;margin-top:6px}.experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;margin-top:42px}.experience-grid article{border-top:1px solid var(--line);padding-top:19px}.small-number{font-size:12px;letter-spacing:.08em;color:var(--blue);font-weight:600}.experience-grid h3{font-size:20px;font-weight:600;margin-top:8px;margin-bottom:12px}.experience-grid p{color:var(--muted);font-size:16px;line-height:1.7}.work-section{background:var(--paper);padding-top:67px;padding-bottom:65px}.gallery-note{font-size:16px;color:var(--muted);max-width:640px;margin-top:15px}.project{margin-top:53px}.project+.project{margin-top:75px}.project-heading{display:flex;align-items:flex-start;gap:24px;margin-bottom:25px;max-width:720px}.project-index{font-size:14px;line-height:1.6;color:var(--blue);font-weight:700;border-top:2px solid var(--blue);padding-top:5px;min-width:33px}.project-heading h3,.student-copy h3{font-size:27px;line-height:1.2;letter-spacing:-.025em;font-weight:600}.project-heading p{font-size:16px;color:var(--muted);line-height:1.65;margin-top:10px}.speaking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.speaking-primary{grid-column:1/-1}.gallery-item{min-width:0}.photo-button{position:relative;display:block;width:100%;border:0;padding:0;background:#d9e2eb;cursor:zoom-in;overflow:hidden;text-align:left;line-height:1}.photo-button img{width:100%;height:auto;transition:transform .4s}.photo-button:hover img{transform:scale(1.025)}.speaking-primary .photo-button img{max-height:540px;object-fit:cover;object-position:50% 43%}.enlarge{position:absolute;right:14px;bottom:14px;background:#fff;color:var(--navy);padding:10px 12px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:17px;box-shadow:0 3px 12px #0001;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.photo-button:hover .enlarge,.photo-button:focus-visible .enlarge{opacity:1;transform:translateY(0)}.gallery-item figcaption{font-size:13px;line-height:1.5;color:#465b6d;display:flex;justify-content:space-between;gap:12px;padding-top:11px}.mascot-grid{display:grid;grid-template-columns:1fr 1.13fr;gap:28px}.mascot-tall{grid-row:span 2}.mascot-tall .photo-button{height:calc(100% - 31px)}.mascot-tall img{width:100%;height:100%;object-fit:cover;object-position:center}.student-project{display:grid;grid-template-columns:1fr .82fr;align-items:center;gap:110px}.student-copy .project-index{display:inline-block;margin-bottom:18px}.student-copy .student-lead{font-size:25px;line-height:1.4;color:var(--ink);letter-spacing:-.02em;margin-top:28px}.student-copy p{color:var(--muted);margin-top:18px;font-size:17px;line-height:1.8}.student-photo{max-width:415px}.student-photo img{max-height:560px;object-fit:cover}.contact{padding-top:76px;padding-bottom:78px;display:grid;grid-template-columns:1.35fr 1fr;gap:85px;align-items:center}.contact h2{margin-bottom:17px}.contact p:not(.eyebrow){color:var(--muted);font-size:16px}.contact-details{margin:0}.contact-details div{padding:15px 0;border-bottom:1px solid var(--line)}.contact-details dt{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.contact-details dd{margin:0;font-size:19px;overflow-wrap:anywhere}.contact-details a:hover{color:var(--blue)}.site-footer{border-top:1px solid var(--line);max-width:1268px;margin:auto;padding:23px 44px 30px;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:12px;color:var(--muted)}.site-footer>span:first-child{font-weight:700;color:var(--ink);font-size:14px}.site-footer a:hover{color:var(--blue)}.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100dvh;color:#fff;background:#0c1723;overflow:auto}.lightbox::backdrop{background:#0c1723}.lightbox-toolbar{height:67px;padding:14px 30px;display:flex;align-items:center;justify-content:space-between}.lightbox-toolbar p{font-size:14px;color:#becede}.icon-button{display:inline-flex;gap:12px;align-items:center;border:1px solid #647385;padding:7px 14px;background:transparent;color:#fff;font-size:14px;cursor:pointer}.icon-button span{font-size:23px;line-height:1}.lightbox-image-wrap{position:relative;height:calc(100dvh - 185px);min-height:220px;padding:8px 72px;display:flex;align-items:center;justify-content:center}.lightbox-image-wrap>img{max-width:100%;max-height:100%;object-fit:contain}.photo-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:58px;color:#fff;background:#243647;border:1px solid #6b7e90;font-size:36px;cursor:pointer;line-height:1}.photo-nav:hover{background:#3a5973}.previous{left:18px}.next{right:18px}.lightbox-caption{text-align:center;padding:15px 30px 25px;max-width:850px;margin:auto}.lightbox-caption h2{font-size:21px;letter-spacing:-.015em}.lightbox-caption p{font-size:14px;color:#bfcede;margin-top:7px}body.modal-open{overflow:hidden}
@media(min-width:1500px){.hero-inner{padding-top:82px;padding-bottom:80px}}
@media(max-width:900px){.site-header{padding:18px 28px}.hero-inner{grid-template-columns:minmax(0,1fr) 230px;gap:35px;padding:50px 32px}.portrait img{width:230px;height:270px}.hero-description{font-size:16px}.hero h1{font-size:50px}.section-wrap{padding-left:32px;padding-right:32px}.experience-grid{gap:25px}.student-project{gap:48px}.contact{gap:45px}.section-intro{gap:30px}.site-footer{padding-left:32px;padding-right:32px;flex-wrap:wrap}.site-footer>span:nth-child(2){order:3;flex-basis:100%}}
@media(max-width:640px){html{scroll-padding-top:20px}.site-header{padding:15px 20px;gap:14px}.wordmark{font-size:14px;gap:9px}.monogram{width:31px;height:31px;font-size:11px}.site-header nav{gap:17px;font-size:13px}.site-header nav a:first-child{display:none}.hero-inner{padding:39px 24px 38px;grid-template-columns:1fr;gap:34px}.hero h1{font-size:50px}.eyebrow{font-size:11px;letter-spacing:.11em}.role-line{font-size:26px}.hero-description{max-width:420px}.hero-links{margin-top:26px}.portrait{display:flex;gap:16px;align-items:center}.portrait img{width:104px;height:114px;object-fit:cover}.portrait figcaption{text-align:left;font-size:12px;max-width:155px;margin:0;line-height:1.8}.section-wrap{padding-left:24px;padding-right:24px}.experience{padding-top:43px;padding-bottom:42px}.section-intro{display:block}.section-intro h2{font-size:30px;max-width:380px}.employment{margin-top:21px}.experience-grid{grid-template-columns:1fr;gap:24px;margin-top:29px}.experience-grid article{padding-top:14px}.experience-grid h3{font-size:20px;margin-top:5px;margin-bottom:8px}.work-section{padding-top:43px;padding-bottom:43px}h2{font-size:32px}.project{margin-top:35px}.project+.project{margin-top:47px}.project-heading{gap:15px;margin-bottom:20px}.project-heading h3,.student-copy h3{font-size:25px}.project-index{min-width:28px;font-size:12px}.speaking-grid,.mascot-grid{grid-template-columns:1fr;gap:23px}.speaking-primary{grid-column:auto}.speaking-primary .photo-button img{max-height:none}.mascot-tall{grid-row:auto}.mascot-tall .photo-button{height:auto}.mascot-tall img{max-height:540px;object-fit:cover;object-position:50% 40%}.gallery-item figcaption{font-size:12px}.enlarge{opacity:1;transform:none;font-size:11px;padding:9px 10px;right:10px;bottom:10px}.student-project{display:flex;flex-direction:column;gap:26px}.student-copy .student-lead{font-size:23px;margin-top:18px}.student-copy p{font-size:16px;margin-top:13px}.student-photo{width:100%;max-width:none}.student-photo img{max-height:560px;object-position:50% 35%}.contact{display:block;padding-top:44px;padding-bottom:45px}.contact-details{margin-top:32px}.desktop-break{display:none}.site-footer{padding:22px 24px;gap:14px}.site-footer>span:nth-child(2){font-size:11px}.lightbox-toolbar{padding:12px 18px}.lightbox-image-wrap{padding:0 12px;height:calc(100dvh - 210px)}.photo-nav{top:auto;bottom:-51px;transform:none;width:43px;height:40px;font-size:29px}.previous{left:18px}.next{right:18px}.lightbox-caption{padding:67px 25px 20px}.lightbox-caption h2{font-size:19px}.lightbox-caption p{font-size:13px}.lightbox-toolbar p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.site-header{max-width:1240px;padding:20px 40px}.hero-inner{max-width:1160px;padding:44px 40px 42px;grid-template-columns:minmax(0,1fr) 200px;gap:70px}.hero h1{font-size:clamp(42px,5vw,65px);margin-bottom:14px}.role-line{font-size:24px;margin-bottom:16px}.hero-description{max-width:650px;font-size:16px}.portrait img{width:200px;height:200px}.portrait figcaption{font-size:12px;margin-top:10px}.section-wrap{max-width:1160px}.collections{padding-top:37px;padding-bottom:36px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:30px;margin-bottom:23px}.section-heading h2{font-size:24px;line-height:1.25;letter-spacing:-.02em}.section-heading p{font-size:14px;color:var(--muted)}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.collection{border:1px solid var(--line);background:white;transition:box-shadow .2s,transform .2s}.collection:hover{transform:translateY(-4px);box-shadow:0 9px 23px #17334d16}.collection-image{position:relative;overflow:hidden;aspect-ratio:1.78;background:var(--paper)}.collection-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.collection:hover img{transform:scale(1.025)}.collection-number{position:absolute;top:12px;left:12px;background:var(--navy);color:white;padding:3px 9px;font-size:12px;font-weight:700}.collection-copy{padding:20px 21px 19px}.collection-copy h3{font-size:21px;letter-spacing:-.025em;line-height:1.25}.collection-copy p{font-size:15px;color:var(--muted);line-height:1.6;margin-top:10px;min-height:48px}.collection-link{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:12px;border-top:1px solid var(--line);color:var(--blue);font-size:14px;font-weight:700}.collection-link span{font-size:18px}.contact{display:flex;justify-content:space-between;gap:35px;padding-top:23px;padding-bottom:35px}.contact h2{font-size:23px;margin-bottom:0}.download{display:inline-block;color:var(--blue);font-size:14px;margin-top:10px}.download:hover{text-decoration:underline}.contact-links{display:flex;flex-wrap:wrap;justify-content:flex-end;column-gap:25px;row-gap:6px;font-size:14px}.contact-links a:hover{color:var(--blue)}.gallery-intro{padding-top:43px;padding-bottom:30px}.gallery-intro h1{font-size:clamp(35px,4.3vw,53px);line-height:1.1;letter-spacing:-.035em;margin-bottom:0}.gallery-lead{font-size:22px;line-height:1.5;letter-spacing:-.015em;max-width:840px;margin-top:18px}.gallery-context{color:var(--muted);font-size:16px;line-height:1.75;max-width:850px;margin-top:14px}.collection-nav{display:flex;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-top:27px;font-size:14px;font-weight:600}.collection-nav a{padding:10px 0;border-bottom:3px solid transparent;margin-bottom:-1px}.collection-nav a[aria-current]{border-color:var(--blue);color:var(--blue)}.collection-nav a:hover{color:var(--blue)}.photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:37px 28px;padding-bottom:50px}.portrait-item .photo-button img{max-height:655px;object-fit:cover;object-position:center}.photo-gallery .enlarge{opacity:1;transform:none}.photo-gallery figcaption{display:block;padding-top:14px}.gallery-item h2{font-size:19px;line-height:1.3;letter-spacing:-.015em}.gallery-item figcaption p{font-size:14px;color:var(--muted);margin-top:5px;line-height:1.55}.gallery-end{display:flex;justify-content:space-between;gap:25px;padding-top:18px;padding-bottom:45px;font-size:14px;color:var(--blue)}
@media(max-width:900px){.hero-inner{gap:35px}.role-line{font-size:21px}.collection-grid{gap:18px}.collection-copy{padding:17px}.collection-copy h3{font-size:19px}.section-heading{display:block}.section-heading p{margin-top:7px}.contact-links{max-width:340px}.collection-copy p{min-height:72px}}
@media(max-width:640px){.site-header{padding:16px 20px;gap:12px}.site-header nav a:first-child{display:block}.hero-inner{padding:30px 24px;grid-template-columns:1fr;gap:23px}.hero h1{font-size:45px}.role-line{font-size:22px}.portrait img{width:90px;height:90px}.portrait figcaption{max-width:180px;margin:0}.collections{padding-top:29px;padding-bottom:27px}.collection-grid{grid-template-columns:1fr;gap:22px}.collection-image{aspect-ratio:1.85}.collection-copy{padding:18px 21px}.collection-copy h3{font-size:22px}.collection-copy p{min-height:0;font-size:16px}.collection-link{margin-top:15px}.contact{display:block;padding-top:20px;padding-bottom:31px}.contact-links{flex-direction:column;align-items:flex-start;margin-top:20px;gap:8px;max-width:none;font-size:15px}.gallery-intro{padding-top:26px;padding-bottom:25px}.gallery-intro h1{font-size:37px}.gallery-lead{font-size:21px}.collection-nav{gap:19px;font-size:13px}.photo-gallery{grid-template-columns:1fr;gap:31px;padding-bottom:30px}.portrait-item .photo-button img{max-height:580px}.gallery-item h2{font-size:20px}.gallery-end{font-size:13px;gap:20px;padding-bottom:33px}}

:root{--ink:#172d35;--muted:#5c6868;--green:#315e4f;--green-soft:#e6eee8;--cream:#f5f3ed;--white:#fffefa;--line:#d9ddd6;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.65;font-size:16px}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid #ad7931;outline-offset:5px}::selection{background:#d4e4da}.wrap{max-width:1280px;margin:0 auto;padding-left:60px;padding-right:60px}.skip-link{position:fixed;top:-70px;left:20px;padding:12px 20px;background:var(--white);z-index:60}.skip-link:focus{top:10px}.portfolio-header{max-width:1400px;margin:auto;padding:22px 60px;display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--cream);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:15px;font-weight:650;line-height:1.3}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:var(--ink);color:var(--cream);font-family:var(--serif);font-weight:400;font-size:16px}.brand-sub{display:block;color:var(--muted);font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:9px;margin-top:5px}.portfolio-header nav{display:flex;align-items:center;gap:30px;font-size:13px}.portfolio-header nav a{padding:7px 0}.portfolio-header nav a:hover{color:var(--green);text-decoration:underline;text-underline-offset:6px}.portfolio-header .nav-contact{padding:8px 16px;border:1px solid #9ca89e;display:flex;align-items:center;gap:24px}.menu-toggle{display:none}.eyebrow{font-family:var(--sans);text-transform:uppercase;color:var(--green);font-size:10px;letter-spacing:.14em;font-weight:650;line-height:1.5}.eyebrow>span{color:#82958a;margin-right:3px}.hero-section{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.8fr);gap:75px;align-items:center;padding-top:74px;padding-bottom:72px}.hero-copy h1{font-size:clamp(48px,5.65vw,79px);letter-spacing:-.055em;line-height:1.06;margin-top:21px;margin-bottom:18px}.name-dot{color:var(--green)}.hero-role{font-size:24px;font-family:var(--serif);letter-spacing:-.02em;margin-bottom:22px}.hero-intro{font-size:17px;line-height:1.75;color:var(--muted);max-width:530px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;padding:13px 20px;font-size:12px;font-weight:650;line-height:1.4;min-height:46px;transition:background .15s,color .15s}.button span{font-size:17px;line-height:1}.button.primary{background:var(--green);color:var(--white);border:1px solid var(--green)}.button.primary:hover{background:#24483c}.button.outline{border:1px solid #adb8ae;background:transparent;color:var(--ink)}.button.outline:hover{background:var(--green-soft)}.hero-meta{display:flex;flex-wrap:wrap;gap:9px 17px;margin-top:28px;font-size:10px;color:var(--muted)}.hero-meta span{padding-right:17px;border-right:1px solid #b8c2b8}.hero-meta a{color:var(--green);font-weight:600}.hero-portrait{width:100%;max-width:325px;justify-self:end}.portrait-frame{background:#e6e6dc;padding:15px 15px 0}.portrait-frame img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:50% 38%}.hero-portrait figcaption{display:flex;justify-content:space-between;gap:15px;font-family:var(--serif);font-size:13px;padding-top:14px}.caption-index{font-family:var(--sans);font-size:9px;letter-spacing:.1em;color:var(--muted);padding-top:2px}.orientation{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:21px;padding-bottom:21px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.orientation>p{font-size:14px;font-family:var(--serif)}.orientation>div{display:flex;gap:32px}.orientation a{font-size:10px;display:flex;align-items:center;gap:12px}.orientation a:hover{color:var(--green)}.orientation span{font-size:9px;color:#819187}.section{padding-top:82px;padding-bottom:83px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:65px;margin-bottom:37px}.section-heading h2{font-size:clamp(31px,3.1vw,43px);line-height:1.12;letter-spacing:-.035em;margin-top:13px;max-width:610px}.section-description{max-width:325px;font-size:13px;color:var(--muted);line-height:1.8}.software-feature{display:grid;grid-template-columns:.83fr 1.17fr;border:1px solid var(--line);background:var(--white);overflow:hidden}.software-copy{padding:38px 36px}.status{font-size:9px;letter-spacing:.02em;display:flex;align-items:center;gap:8px;color:var(--green)}.status-dot{width:6px;height:6px;background:#4f8b62;border-radius:50%}.software-copy h3{font-size:38px;line-height:1.2;letter-spacing:-.03em;margin-top:16px}.software-lead{font-size:18px;font-family:var(--serif);margin-top:7px;margin-bottom:19px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:13px;color:var(--muted);line-height:1.85}.feature-list{padding:0;list-style:none;margin:21px 0 25px;font-size:11px;line-height:1.6}.feature-list li{padding:7px 0 7px 19px;position:relative;border-bottom:1px solid #e7e9e2}.feature-list li:before{content:'↳';position:absolute;left:0;color:var(--green)}.product-footnote{font-size:9px;color:var(--muted);margin-top:13px}.software-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#e6eee8;padding:31px 22px;min-width:0}.software-visual a{width:100%;box-shadow:0 12px 32px #193d2314;border:1px solid #d0ded4}.software-visual img{width:100%;height:auto}.software-visual figcaption{margin-top:14px;font-size:9px;color:#53695e;align-self:flex-end}.software-secondary{display:grid;grid-template-columns:245px 1fr;gap:34px;align-items:center;margin-top:27px;padding:28px 0 0;border-top:1px solid var(--line)}.software-secondary figure{height:147px;overflow:hidden;border:1px solid var(--line);background:#efede4}.software-secondary img{width:100%;height:auto}.software-secondary h3{font-size:28px;line-height:1.2;margin-top:9px}.software-secondary p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.75;max-width:780px;margin-top:10px}.inline-link{display:inline-flex;align-items:center;gap:28px;font-size:11px;font-weight:600;margin-top:15px;color:var(--green);border-bottom:1px solid #82988a;padding-bottom:4px}.inline-link:hover{border-color:var(--green)}.research-section{background:#e9ede6;border-top:1px solid #dfe4da;border-bottom:1px solid #dfe4da}.research-row{display:grid;grid-template-columns:165px minmax(0,1fr) 45px;gap:32px;align-items:center;padding:34px 0;border-top:1px solid #c7d1c5}.research-row:last-child{border-bottom:1px solid #c7d1c5}.research-marker>span{font-family:var(--serif);font-size:27px;line-height:1;color:#798f7a}.research-marker>p{font-family:var(--serif);font-size:24px;margin-top:12px;line-height:1.2}.research-marker small{font-size:9px;color:var(--muted);display:block;margin-top:8px}.research-method{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#5e735e;margin-bottom:9px}.research-content h3{font-size:25px;line-height:1.26;letter-spacing:-.025em;max-width:730px}.research-content h3 a:hover{color:var(--green)}.research-content>p:not(.research-method){font-size:12px;color:var(--muted);line-height:1.8;max-width:735px;margin-top:13px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.tags span{display:block;font-size:9px;line-height:1.3;border:1px solid #bbcbbb;color:#415a49;padding:5px 9px}.round-link{width:40px;height:40px;border-radius:50%;border:1px solid #a6b7a5;display:grid;place-items:center;font-size:22px;align-self:center}.round-link:hover{background:var(--green);color:var(--white);border-color:var(--green)}.experience-intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;padding:0 0 30px;margin-bottom:29px;border-bottom:1px solid var(--line);align-items:center}.experience-intro h3{font-size:30px;line-height:1.2;margin-top:12px}.experience-intro h3 span{font-family:var(--sans);display:block;font-size:11px;letter-spacing:0;color:var(--muted);margin-top:10px}.experience-intro>p{font-size:13px;line-height:1.85;color:var(--muted)}.experience-collections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.experience-card{display:block}.photo-cover{aspect-ratio:1.52;overflow:hidden;background:#e0e5dc}.photo-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.experience-card:hover img{transform:scale(1.025)}.experience-card-copy{padding-top:18px}.experience-card-copy .eyebrow{font-size:9px}.experience-card-copy h3{font-size:24px;display:flex;justify-content:space-between;line-height:1.2;margin-top:9px;gap:12px}.experience-card-copy h3 span{font-family:var(--sans);font-size:19px}.experience-card-copy>p:not(.eyebrow){color:var(--muted);font-size:11px;line-height:1.7;margin-top:10px}.service-note{display:grid;grid-template-columns:.5fr 1fr 1fr;gap:32px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-top:34px}.service-note strong{font-size:10px;font-weight:600;display:block}.service-note p>span{display:block;color:var(--muted);font-size:10px;line-height:1.8;margin-top:4px}.video-heading{display:flex;align-items:baseline;justify-content:space-between;gap:30px;margin:45px 0 22px}.video-heading h3{font-size:29px;line-height:1.2;letter-spacing:-.025em}.video-heading p{font-size:11px;color:var(--muted)}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.video-project video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#11252e}.video-project figcaption{display:flex;justify-content:space-between;align-items:start;gap:22px;padding-top:14px}.video-project h4{font-family:var(--serif);font-size:20px;font-weight:400;line-height:1.3}.video-project p{font-size:10px;color:var(--muted);margin-top:4px}.video-project figcaption>span{font-size:9px;color:var(--green);padding:5px 8px;border:1px solid var(--line);white-space:nowrap}.recognition-section{background:#eeebe1;border-top:1px solid #e1dfd5;border-bottom:1px solid #e1dfd5}.recognition-layout{display:grid;grid-template-columns:.62fr 1.38fr;gap:80px}.recognition-layout .section-heading{display:block;margin-bottom:20px}.recognition-intro{font-size:13px;color:var(--muted);line-height:1.85;max-width:320px}.award{display:grid;grid-template-columns:66px minmax(0,1fr) 80px;gap:17px;align-items:start;border-top:1px solid #cccec2;padding:23px 0}.award:last-child{border-bottom:1px solid #cccec2}.award-year{color:var(--green);font-size:11px;padding-top:4px}.award h3{font-size:22px;line-height:1.23}.award p{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.7}.award-type{font-size:8px;text-transform:uppercase;letter-spacing:.05em;padding-top:7px;text-align:right;color:#6f766b}.programs{margin-top:30px}.programs>p:not(.eyebrow){display:grid;grid-template-columns:145px 1fr;gap:16px;font-size:10px;margin-top:13px}.programs strong{font-weight:600}.programs p>span{color:var(--muted)}.about-section{display:grid;grid-template-columns:1.03fr .97fr;gap:96px}.about-section .section-heading{display:block;margin-bottom:25px}.about-lead{font-family:var(--serif);font-size:23px;line-height:1.5;letter-spacing:-.015em}.about-section>div>p:not(.about-lead){font-size:13px;line-height:1.9;color:var(--muted);margin-top:22px}.education-block h3{font-size:26px;line-height:1.25;margin-top:12px}.education-block>p:not(.eyebrow){font-size:12px;margin-top:9px}.small-muted{font-size:10px!important;line-height:1.8;color:var(--muted)}.focus-block{border-top:1px solid var(--line);padding-top:25px;margin-top:26px}.focus-block .tags{gap:8px;margin-top:15px}.focus-block .tags span{border-color:#d0d9cc;font-size:10px;padding:7px 10px}.learning-details{margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.learning-details summary{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:15px 0;cursor:pointer;list-style:none}.learning-details summary::-webkit-details-marker{display:none}.learning-details[open] summary>span{transform:rotate(45deg)}.learning-details ul{padding:0;list-style:none;margin:0 0 15px}.learning-details li{font-size:11px;padding:9px 0}.learning-details strong{font-weight:550}.learning-details li span{font-size:10px;color:var(--muted);display:block;margin-top:4px}.contact-section{background:var(--ink);color:var(--cream)}.contact-inner{padding-top:67px;padding-bottom:67px;display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:center}.contact-inner .eyebrow{color:#aac9b5;font-size:9px}.contact-inner h2{font-size:57px;line-height:1.15;letter-spacing:-.035em;margin-top:17px}.contact-inner p:not(.eyebrow){font-size:12px;color:#b8c6c6;margin-top:17px}.email-link{font-family:var(--serif);font-size:24px;line-height:1.5;margin-top:27px;display:inline-flex;gap:35px;align-items:center}.email-link span{font-family:var(--sans);font-size:18px}.email-link:hover{color:#b9d5bf}.resource-links>a,.resource-links>button{display:flex;justify-content:space-between;gap:25px;align-items:center;text-align:left;border:0;border-top:1px solid #486066;background:transparent;color:var(--cream);width:100%;padding:17px 0;font-size:13px;cursor:pointer}.resource-links>a:last-child,.resource-links>button:last-child{border-bottom:1px solid #486066}.resource-links small{display:block;font-size:9px;color:#a9bfc0;margin-top:5px;font-weight:400}.resource-links>a:hover,.resource-links>button:hover{color:#c8dfcc}.portfolio-footer{max-width:1400px;margin:0 auto;padding:25px 60px;display:flex;justify-content:space-between;align-items:center;gap:30px;font-size:9px;color:var(--muted)}.portfolio-footer .brand-text{font-family:var(--serif);font-size:17px;color:var(--ink)}.portfolio-footer>a:last-child:hover{color:var(--green)}
/* Research overviews */
.paper-main{padding-top:35px;padding-bottom:55px}.back-link{font-size:11px;color:var(--green);border-bottom:1px solid #91a28f;padding-bottom:4px;display:inline-block}.paper-hero{padding:38px 0 42px;border-bottom:1px solid var(--line)}.paper-hero h1{font-size:clamp(34px,4.2vw,59px);max-width:1050px;letter-spacing:-.045em;line-height:1.12;margin-top:19px;margin-bottom:20px}.paper-author{font-size:12px;color:var(--muted)}.paper-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.paper-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:85px;padding-top:45px}.paper-body>section{margin-bottom:42px}.paper-body h2{font-size:29px;line-height:1.35;letter-spacing:-.025em;margin-top:12px}.paper-body p:not(.eyebrow):not(.diagram-caption){font-size:14px;color:var(--muted);line-height:1.9;margin-top:15px}.paper-body .paper-abstract{font-size:16px!important;color:var(--ink)!important}.paper-sidebar{align-self:start;padding:25px;border:1px solid var(--line);background:var(--white);position:sticky;top:25px}.paper-sidebar dl{margin:0}.paper-sidebar dl>div{border-bottom:1px solid #e4e7df;padding:15px 0}.paper-sidebar dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.paper-sidebar dd{font-size:12px;margin:5px 0 0;line-height:1.8}.paper-downloads{margin:12px 0 15px}.paper-downloads a{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:10px;color:var(--green);padding:10px 0;border-bottom:1px solid #d9e2d5}.model-diagram,.theme-diagram{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px;background:#e8eee5;padding:24px}.model-diagram p,.theme-diagram p{font-family:var(--serif);font-size:18px!important;line-height:1.4!important;color:var(--ink)!important;margin:0!important}.model-diagram p{max-width:125px}.model-diagram small{font-family:var(--sans);display:block;font-size:8px;line-height:1.6;color:var(--muted);margin-top:8px}.model-diagram>span,.theme-diagram>span{color:var(--green);font-size:20px}.model-outcome{border-left:1px solid #bacaba;padding-left:17px}.diagram-caption{font-size:9px;color:var(--muted);margin-top:9px}.theme-diagram>div{display:grid;gap:9px;font-size:10px;color:var(--green)}.theme-diagram>p{max-width:170px}.findings{padding-left:20px;margin:20px 0 0}.findings li{font-size:14px;line-height:1.85;color:var(--muted);padding-left:8px;margin-bottom:14px}.findings li::marker{color:var(--green)}.paper-scope{border-top:1px solid var(--line);padding-top:25px}.paper-next{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:22px;font-size:11px;color:var(--green)}.paper-next>div{display:flex;gap:22px}
/* Retained photo collections */
.gallery-intro h1{font-family:var(--serif);font-weight:400;font-size:54px;letter-spacing:-.035em}.gallery-context,.gallery-lead{color:var(--muted)}.gallery-item h2{font-family:var(--serif);font-weight:400;font-size:24px}.photo-gallery .photo-button{background:#dce4d8}.photo-gallery .enlarge{color:var(--green);background:var(--white)}.collection-nav a[aria-current]{border-color:var(--green);color:var(--green)}.collection-nav a:hover{color:var(--green)}.gallery-end{color:var(--green)}.video-section{padding-bottom:48px}.video-section h2{margin-bottom:24px;margin-top:10px;font-family:var(--serif);font-weight:400;font-size:34px}.lightbox{background:#12272d}.lightbox h2{font-family:var(--serif);font-weight:400}.lightbox .icon-button{font-family:var(--sans)}
@media(min-width:1450px){.hero-section{padding-top:92px;padding-bottom:86px}.hero-copy h1{font-size:84px}.hero-portrait{max-width:350px}}
@media(max-width:1050px){.wrap,.portfolio-header,.portfolio-footer{padding-left:34px;padding-right:34px}.portfolio-header nav{gap:21px}.hero-section{gap:40px}.hero-copy h1{font-size:65px}.hero-role{font-size:22px}.hero-intro{font-size:16px}.hero-meta{font-size:9px;gap:10px}.hero-meta span{padding-right:10px}.section-heading{gap:35px}.section-description{max-width:290px}.software-copy{padding:28px}.software-copy h3{font-size:34px}.software-visual{padding:25px 17px}.research-row{grid-template-columns:145px minmax(0,1fr) 40px;gap:25px}.research-content h3{font-size:23px}.experience-intro{gap:45px}.experience-collections{gap:20px}.experience-card-copy h3{font-size:22px}.recognition-layout{gap:40px;grid-template-columns:.65fr 1.35fr}.award{grid-template-columns:59px minmax(0,1fr) 62px;gap:13px}.award h3{font-size:20px}.award-type{font-size:7px}.about-section{gap:50px}.contact-inner{gap:50px}.paper-layout{gap:45px;grid-template-columns:minmax(0,1fr) 240px}.paper-sidebar{padding:20px}}
@media(max-width:780px){.portfolio-header{position:relative;padding-top:18px;padding-bottom:18px}.portfolio-header nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--cream);z-index:30;padding:20px 34px;border-bottom:1px solid var(--line);box-shadow:0 10px 20px #19312b0b;flex-direction:column;align-items:stretch;gap:9px}.portfolio-header nav.is-open{display:flex}.portfolio-header .nav-contact{justify-content:space-between}.menu-toggle{display:flex;align-items:center;gap:15px;background:transparent;border:1px solid #aab5aa;padding:8px 12px;font-size:11px;cursor:pointer}.menu-toggle span{font-size:18px;line-height:1}.hero-section{grid-template-columns:1.4fr .7fr;gap:30px;padding-top:48px;padding-bottom:48px}.hero-copy h1{font-size:52px}.hero-intro{font-size:14px}.hero-role{font-size:20px}.hero-portrait figcaption{font-size:11px}.caption-index{display:none}.portrait-frame{padding:10px 10px 0}.button{gap:17px;padding:11px 15px;font-size:10px;min-height:41px}.hero-actions{gap:9px}.hero-meta{margin-top:22px}.orientation>p{display:none}.orientation>div{justify-content:space-between;width:100%;gap:20px}.section{padding-top:58px;padding-bottom:58px}.section-heading{align-items:start;flex-direction:column;gap:17px;margin-bottom:29px}.section-heading h2{font-size:36px;max-width:600px}.section-description{max-width:550px;font-size:12px}.software-feature{grid-template-columns:1fr}.software-copy{padding:30px}.software-copy h3{font-size:38px}.software-copy .feature-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:15px;margin-bottom:23px}.feature-list li{border-bottom:0}.software-visual{padding:28px}.software-visual img{max-height:380px;object-fit:contain}.software-secondary{grid-template-columns:185px 1fr;gap:25px}.software-secondary h3{font-size:27px}.software-secondary p:not(.eyebrow){font-size:11px}.software-secondary figure{height:124px}.research-row{grid-template-columns:110px minmax(0,1fr) 34px;gap:20px;padding:28px 0}.research-marker>p{font-size:23px}.research-marker small{font-size:8px}.research-content h3{font-size:23px}.research-content>p:not(.research-method){font-size:11px}.round-link{width:34px;height:34px;font-size:19px}.experience-intro{grid-template-columns:1fr;gap:20px}.experience-intro h3{font-size:31px}.experience-collections{gap:18px}.experience-card-copy h3{font-size:20px}.experience-card-copy>p:not(.eyebrow){font-size:10px}.service-note{grid-template-columns:1fr 1fr;gap:20px}.service-note>.eyebrow{grid-column:1/-1}.video-heading{display:block;margin-top:36px}.video-heading p{margin-top:10px}.video-project h4{font-size:19px}.video-project figcaption>span{font-size:8px;padding:4px 6px}.recognition-layout{display:block}.recognition-intro{max-width:550px;margin-bottom:30px}.award{grid-template-columns:80px minmax(0,1fr) 85px;gap:20px}.award h3{font-size:23px}.award-year{font-size:12px}.award-type{font-size:8px}.about-section{grid-template-columns:1fr;gap:35px}.about-details{border-top:1px solid var(--line);padding-top:26px}.contact-inner{grid-template-columns:1fr;gap:34px}.contact-inner h2{font-size:51px}.resource-links{max-width:none}.portfolio-footer{gap:20px;flex-wrap:wrap}.portfolio-footer p{font-size:8px}.paper-layout{grid-template-columns:1fr;gap:20px}.paper-sidebar{position:static;max-width:none}.paper-sidebar dl{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.paper-downloads{display:flex;gap:30px}.paper-sidebar>.small-muted{max-width:500px}.paper-hero h1{font-size:45px}.model-diagram p{max-width:150px}.gallery-intro h1{font-size:45px}.video-section .video-grid{gap:20px}}
@media(max-width:540px){html{scroll-padding-top:25px}.wrap,.portfolio-header,.portfolio-footer{padding-left:23px;padding-right:23px}.portfolio-header nav{padding-left:23px;padding-right:23px}.brand{font-size:13px;gap:10px}.brand-mark{width:37px;height:37px;font-size:14px}.brand-sub{font-size:8px}.hero-section{display:flex;flex-direction:column;align-items:stretch;gap:28px;padding-top:35px;padding-bottom:36px}.hero-copy h1{font-size:clamp(40px,11vw,58px);margin-top:17px;line-height:1.1}.hero-role{font-size:23px;margin-bottom:17px}.hero-intro{font-size:15px;line-height:1.75;max-width:450px}.hero-actions{margin-top:22px;gap:10px}.button{font-size:11px;padding:12px 15px;gap:20px;min-height:44px}.hero-meta{font-size:9px;gap:8px 12px;line-height:1.5}.hero-meta span{padding-right:12px}.hero-portrait{display:flex;align-items:center;gap:20px;max-width:none;width:100%;border-top:1px solid var(--line);padding-top:21px}.portrait-frame{width:115px;flex-shrink:0;padding:6px 6px 0}.hero-portrait figcaption{display:block;font-size:17px;line-height:1.45;padding:0;max-width:190px}.caption-index{display:block;font-size:9px;margin-top:11px}.orientation{padding-top:17px;padding-bottom:17px}.orientation>div{gap:14px}.orientation a{font-size:8px;line-height:1.6;gap:8px}.orientation span{font-size:8px}.section{padding-top:43px;padding-bottom:43px}.section-heading{gap:16px;margin-bottom:25px}.section-heading h2{font-size:34px;line-height:1.16;margin-top:11px}.section-description{font-size:12px}.eyebrow{font-size:9px}.software-copy{padding:25px 23px}.software-copy h3{font-size:37px}.software-lead{font-size:19px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:12px}.software-copy .feature-list{display:block;font-size:11px;margin-bottom:21px}.feature-list li{border-bottom:1px solid var(--line);padding-top:9px;padding-bottom:9px}.software-visual{padding:22px 15px}.software-visual figcaption{font-size:8px;align-self:center}.software-secondary{grid-template-columns:1fr;gap:18px;padding-top:24px;margin-top:23px}.software-secondary figure{height:auto;aspect-ratio:2.05;max-width:none}.software-secondary h3{font-size:30px}.software-secondary p:not(.eyebrow){font-size:12px}.inline-link{font-size:11px}.research-row{grid-template-columns:minmax(0,1fr) 34px;gap:15px;padding:25px 0;align-items:start}.research-marker{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.research-marker>span{font-size:21px}.research-marker>p{font-size:20px;margin:0}.research-marker small{font-size:9px;margin:0 0 0 auto}.research-content h3{font-size:24px;line-height:1.3}.research-method{font-size:8px}.research-content>p:not(.research-method){font-size:12px}.round-link{margin-top:28px}.tags{margin-top:15px;gap:6px}.tags span{font-size:8px;padding:5px 7px}.experience-intro{gap:17px;padding-bottom:25px;margin-bottom:24px}.experience-intro>p{font-size:12px}.experience-collections{grid-template-columns:1fr;gap:30px}.photo-cover{aspect-ratio:1.65}.experience-card-copy{padding-top:15px}.experience-card-copy h3{font-size:27px;margin-top:7px}.experience-card-copy>p:not(.eyebrow){font-size:12px}.service-note{grid-template-columns:1fr;gap:18px;margin-top:28px}.service-note strong{font-size:11px}.service-note p>span{font-size:11px}.video-heading h3{font-size:29px}.video-grid{grid-template-columns:1fr;gap:28px}.video-project h4{font-size:22px}.video-project p{font-size:11px}.video-project figcaption>span{font-size:9px;padding:5px 8px}.award{grid-template-columns:56px minmax(0,1fr);gap:14px;padding:22px 0}.award h3{font-size:23px}.award-year{font-size:10px}.award p{font-size:10px}.award-type{display:none}.programs>p:not(.eyebrow){grid-template-columns:1fr;gap:3px;font-size:11px;margin-top:17px}.about-section{gap:29px}.about-lead{font-size:24px}.about-section>div>p:not(.about-lead){font-size:12px}.education-block h3{font-size:26px}.focus-block .tags span{font-size:9px}.contact-inner{padding-top:43px;padding-bottom:43px;gap:31px}.contact-inner h2{font-size:48px}.contact-inner .eyebrow{font-size:8px;max-width:300px;line-height:1.8}.contact-inner p:not(.eyebrow){font-size:12px}.email-link{font-size:22px;gap:20px;margin-top:23px}.portfolio-footer{padding-top:23px;padding-bottom:23px;gap:15px}.portfolio-footer p{order:3;flex-basis:100%;font-size:9px}.portfolio-footer>a:last-child{margin-left:auto;font-size:9px}.paper-main{padding-top:25px;padding-bottom:35px}.paper-hero{padding-top:29px;padding-bottom:31px}.paper-hero h1{font-size:37px;line-height:1.18}.paper-author{font-size:11px}.paper-hero>.eyebrow{line-height:1.8}.paper-actions{gap:10px;margin-top:22px;display:flex;flex-direction:column;align-items:stretch}.paper-actions .button{font-size:11px}.paper-layout{padding-top:32px}.paper-body>section{margin-bottom:33px}.paper-body h2{font-size:27px;line-height:1.35}.paper-body .paper-abstract{font-size:15px!important}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:13px;line-height:1.85}.model-diagram{display:grid;grid-template-columns:1fr auto;gap:16px;padding:22px}.model-diagram>p{max-width:none;grid-column:1;font-size:19px!important}.model-diagram>span{grid-column:2}.model-diagram .diagram-arrow{transform:rotate(90deg)}.model-outcome{border-left:0;border-top:1px solid #bacaba;padding:16px 0 0;grid-column:1/-1!important}.model-diagram small{font-size:9px}.theme-diagram{padding:20px;gap:15px}.theme-diagram>p{font-size:18px!important;max-width:110px}.theme-diagram>div{font-size:9px;gap:10px}.diagram-caption{font-size:8px}.paper-sidebar dl{grid-template-columns:1fr 1fr;gap:0 15px}.paper-sidebar dd{font-size:11px}.paper-downloads{display:block}.paper-next{font-size:9px;gap:15px;flex-direction:column}.paper-next>div{gap:25px}.gallery-intro h1{font-size:39px}.gallery-item h2{font-size:25px}.video-section h2{font-size:31px}.video-section .video-grid{gap:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

:root{--ink:#142d3c;--muted:#57656c;--green:#315c66;--line:#d8ddd9;--brass:#c5a367;--cream:#f5f3ed;--white:#fffefa}
.wrap{max-width:1400px;padding-left:70px;padding-right:70px}.portfolio-header{max-width:1540px;padding:25px 70px;gap:35px}.brand{font-size:16px;gap:15px}.brand-mark{width:46px;height:46px;font-size:18px}.brand-sub{font-size:9px;letter-spacing:.1em}.portfolio-header nav{gap:26px;font-size:14px}.portfolio-header nav a[aria-current="page"]{color:var(--green);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}.github-nav{display:flex;align-items:center;gap:7px;border-left:1px solid #bcc6c3;padding-left:24px!important;margin-left:3px}.eyebrow{font-size:11px;letter-spacing:.13em}.button{font-size:13px;min-height:51px;padding:14px 23px;gap:29px}.inline-link{font-size:13px;gap:18px}.inline-link svg{flex-shrink:0}.portfolio-footer{max-width:1540px;padding:31px 130px 31px 70px;font-size:11px}.portfolio-footer .brand-text{font-size:21px}.portfolio-footer nav{display:flex;gap:24px;font-size:11px}.portfolio-footer a:hover{color:var(--green)}
.home-hero-shell{background:var(--ink);color:var(--cream)}.home-hero{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:110px;padding-top:67px;padding-bottom:70px;min-height:710px}.home-hero .eyebrow{color:#c6b384;font-size:10px}.home-hero h1{font-size:clamp(85px,8.7vw,126px);font-family:var(--serif);font-weight:400;line-height:.91;letter-spacing:-.055em;margin:27px 0 25px}.home-hero h1>span{color:var(--brass)}.home-role{font-family:var(--serif);font-size:26px;line-height:1.32;letter-spacing:-.015em}.home-intro{font-size:16px;line-height:1.8;color:#b7c5cb;max-width:465px;margin-top:20px}.home-hero .hero-actions{margin-top:28px;gap:12px}.button.brass{background:var(--brass);color:#152a37;border:1px solid var(--brass)}.button.brass:hover{background:#ddc08d;border-color:#ddc08d}.button.light-outline{color:var(--cream);border:1px solid #72848d;background:transparent}.button.light-outline:hover{background:#294554}.home-location{font-size:11px;line-height:1.6;color:#bdc9cb;margin-top:26px}.home-location span{display:block;color:#8299a4;font-size:10px;margin-top:2px}.home-portrait{max-width:370px;justify-self:end;width:100%;position:relative;padding-top:12px}.home-portrait:before{content:'';position:absolute;top:-9px;right:-19px;left:21px;bottom:46px;border:1px solid #637880;pointer-events:none}.home-portrait img{width:100%;aspect-ratio:1;height:auto;object-fit:cover;object-position:50% 37%;position:relative;border:12px solid #e9e7df}.home-portrait figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:23px;font-family:var(--serif);font-size:16px;color:#d5dedc}.home-portrait figcaption>span:last-child{font-family:var(--sans);font-size:10px;letter-spacing:.12em;color:#9fb2ba;padding-top:4px}.portfolio-index{padding-top:89px;padding-bottom:80px}.index-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:42px}.index-heading h2{font-size:50px;letter-spacing:-.035em;line-height:1.12;margin-top:15px}.index-heading>p{font-size:16px;line-height:1.8;color:var(--muted);max-width:350px}.destination-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px 35px}.destination{display:block}.destination-media{position:relative;background:#e6ebe7;aspect-ratio:1.8;overflow:hidden}.destination-media>img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.destination:hover .destination-media>img{transform:scale(1.025)}.destination-number{position:absolute;top:20px;left:23px;display:grid;place-items:center;width:35px;height:35px;background:var(--cream);color:var(--ink);font-size:12px;font-family:var(--sans);z-index:1}.software-cover{padding:27px 38px;background:#d9e6df}.software-cover>img{object-fit:contain;box-shadow:0 7px 30px #13352616}.software-cover .destination-number{background:var(--ink);color:var(--cream)}.research-cover{padding:60px 30px 27px 95px;background:#e5e9df;color:#1e3e35}.research-cover>p{font-size:44px;font-family:var(--serif);line-height:1.12;letter-spacing:-.035em}.cover-caption{position:absolute;bottom:24px;left:95px;font-size:10px;letter-spacing:.05em;color:#5e7569}.recognition-cover{padding:60px 30px 27px 95px;background:#eae3d4;color:#3b3a2e}.recognition-cover>p{font-size:35px;font-family:var(--serif);line-height:1.23;letter-spacing:-.03em}.recognition-cover .cover-caption{color:#7c725c}.destination-copy{padding:21px 0 0}.destination-copy h3{font-size:34px;line-height:1.2;letter-spacing:-.025em;display:flex;align-items:baseline;justify-content:space-between;gap:30px}.destination-copy h3>span{font-family:var(--sans);font-size:24px}.destination-copy p{font-size:14px;line-height:1.8;color:var(--muted);max-width:480px;margin-top:10px}.destination:hover .destination-copy h3{color:var(--green)}.home-conference{display:grid;grid-template-columns:.42fr 1fr;gap:65px;border-top:1px solid var(--line);padding-top:45px;padding-bottom:60px}.home-conference>.eyebrow{margin-top:10px}.home-conference h2{font-size:34px;line-height:1.35;letter-spacing:-.025em;max-width:830px}.home-connect{background:var(--ink);color:var(--cream)}.home-connect>.wrap{padding-top:61px;padding-bottom:61px;display:flex;align-items:center;justify-content:space-between;gap:65px}.home-connect h2{font-size:46px;line-height:1.17;letter-spacing:-.03em;margin-top:14px}.home-connect .eyebrow{color:#b8c9c7}.home-connect>div>div>p:not(.eyebrow){display:flex;gap:30px;margin-top:20px;font-size:12px;color:#c7d4d6}
.page-hero{padding-top:70px;padding-bottom:54px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(58px,6.8vw,88px);line-height:1.02;letter-spacing:-.045em;margin-top:23px;max-width:1000px}.page-deck{max-width:700px;font-size:20px;line-height:1.7;color:var(--muted);margin-top:26px}.page-hero>.inline-link{margin-top:27px}.page-main>.section{padding-top:51px;padding-bottom:70px}.page-main>.standalone-research{padding-top:16px;background:transparent;border:0}.page-main>.standalone-research .research-row:first-child{border-top:0}.software-copy{padding:43px}.software-copy h3{font-size:47px}.software-lead{font-size:23px}.status{font-size:11px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:15px;line-height:1.85}.feature-list{font-size:13px}.product-footnote{font-size:11px}.software-visual figcaption{font-size:10px}.software-secondary{grid-template-columns:290px 1fr;gap:43px;margin-top:34px;padding-top:32px}.software-secondary figure{height:170px}.software-secondary h3{font-size:36px}.software-secondary p:not(.eyebrow){font-size:15px}.software-secondary .eyebrow{font-size:10px}.github-projects{padding-bottom:75px}.github-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:30px}.github-section-heading h2{font-size:42px;line-height:1.2;letter-spacing:-.035em;margin-top:14px}.repository-list article{display:grid;grid-template-columns:50px 1fr 130px;align-items:center;gap:26px;padding:31px 0;border-top:1px solid var(--line)}.repository-list article:last-child{border-bottom:1px solid var(--line)}.repo-index{align-self:start;padding-top:6px;font-family:var(--serif);font-size:24px;color:#819489}.repository-list h3{font-size:30px;line-height:1.2;letter-spacing:-.02em;margin-top:10px}.repository-list article>div>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.85;max-width:780px;margin-top:13px}.repository-list .tags span{font-size:10px}.repo-note{font-size:12px;color:var(--muted);margin-top:19px}.repo-note a{border-bottom:1px solid #a6b8aa;color:var(--green)}.research-row{grid-template-columns:200px minmax(0,1fr) 48px;gap:35px;padding-top:39px;padding-bottom:39px}.research-marker>span{font-size:32px}.research-marker>p:not(.research-professor){font-size:28px;margin-top:14px}.research-marker small{font-size:11px;line-height:1.7;margin-top:10px}.research-marker .research-professor{font-family:var(--sans);font-size:13px;line-height:1.7;color:var(--muted);margin-top:12px}.research-method{font-size:10px}.research-content h3{font-size:30px;line-height:1.27}.research-content>p:not(.research-method){font-size:15px;line-height:1.8}.research-content .conference-inline{font-size:12px!important;color:var(--green)!important}.tags span{font-size:10px;padding:6px 10px}.round-link{width:47px;height:47px;font-size:25px}.experience-intro h3{font-size:39px}.experience-intro h3 span{font-size:14px}.experience-intro>p{font-size:16px;line-height:1.8}.experience-collections{margin-top:40px}.experience-card-copy h3{font-size:29px}.experience-card-copy .eyebrow{font-size:10px}.experience-card-copy>p:not(.eyebrow){font-size:14px}.service-note{margin-top:43px;padding:28px 0}.service-note strong{font-size:13px}.service-note p>span{font-size:12px}.video-heading{margin-top:50px}.video-heading h3{font-size:37px}.video-heading p{font-size:13px}.video-project h4{font-size:25px}.video-project p{font-size:12px}.video-project figcaption>span{font-size:10px}.conference-feature{display:grid;grid-template-columns:.68fr 1.32fr;gap:75px;padding-top:47px;padding-bottom:78px;border-top:1px solid var(--line)}.conference-feature h2,.conference-recognition h2{font-size:43px;line-height:1.15;letter-spacing:-.035em;margin-top:17px}.conference-label{font-size:12px;letter-spacing:.02em;color:var(--green)}.conference-feature h3{font-size:34px;line-height:1.3;letter-spacing:-.025em;margin-top:14px}.conference-feature article>p:last-of-type{font-size:15px;color:var(--muted);line-height:1.8;margin-top:18px}.page-main>.recognition-section{background:transparent;border:0}.recognition-subtitle{font-size:42px;line-height:1.16;letter-spacing:-.035em;margin-bottom:23px}.recognition-intro{font-size:15px}.recognition-layout{grid-template-columns:.65fr 1.35fr;gap:70px}.award{grid-template-columns:76px minmax(0,1fr) 90px;gap:20px;padding:28px 0}.award h3{font-size:27px}.award-year{font-size:13px}.award p{font-size:13px;line-height:1.8}.award-type{font-size:9px}.programs{margin-top:36px}.programs>p:not(.eyebrow){font-size:13px;grid-template-columns:155px 1fr;margin-top:18px}.conference-recognition{border-top:1px solid var(--line);padding-top:45px;padding-bottom:78px;display:grid;grid-template-columns:.65fr 1.35fr;gap:70px}.conference-recognition article{display:grid;grid-template-columns:76px 1fr;gap:20px;align-items:start}.large-year{font-family:var(--serif);font-size:28px;color:#7e928a}.conference-recognition h3{font-size:33px;line-height:1.25;letter-spacing:-.03em}.conference-recognition article p{font-size:17px;line-height:1.75;color:var(--muted);margin-top:16px}.about-section{gap:100px}.about-lead{font-size:31px}.about-section>div>p:not(.about-lead){font-size:16px}.education-block h3{font-size:32px}.education-block>p:not(.eyebrow){font-size:15px}.focus-block .tags span{font-size:12px}.learning-details summary{font-size:14px;padding:20px 0}.learning-details li{font-size:13px}.learning-details li span{font-size:12px}.contact-inner h2{font-size:68px}.contact-inner p:not(.eyebrow){font-size:15px}.email-link{font-size:31px}.resource-links>a,.resource-links>button{font-size:16px;padding:21px 0}.resource-links small{font-size:11px}.small-muted{font-size:12px!important}.paper-main{padding-top:40px}.paper-hero h1{font-size:clamp(39px,4.8vw,67px);line-height:1.13}.paper-author{font-size:14px}.paper-instructor{font-size:14px;color:var(--green);margin-top:8px}.paper-body h2{font-size:34px}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:16px}.paper-body .paper-abstract{font-size:18px!important}.paper-sidebar{padding:26px}.paper-sidebar dt{font-size:10px}.paper-sidebar dd{font-size:13px}.paper-layout{grid-template-columns:minmax(0,1fr) 280px;gap:80px}.paper-downloads a{font-size:12px}.paper-next{font-size:13px}.conference-callout{margin-top:30px;padding:30px 33px;background:#e8e9df;border-left:3px solid var(--brass)}.conference-callout h2{font-size:29px;line-height:1.35;letter-spacing:-.025em;max-width:950px;margin-top:13px}.conference-callout>p:last-child{font-size:12px;color:var(--muted);margin-top:12px}.gallery-intro{padding-top:65px;padding-bottom:36px}.gallery-intro h1{font-size:70px}.gallery-lead{font-size:25px}.gallery-context{font-size:17px}.collection-nav{font-size:15px}.gallery-end{font-size:15px}.gallery-item h2{font-size:29px}.gallery-item figcaption p{font-size:15px}.section-wrap{max-width:1400px;padding-left:70px;padding-right:70px}.back-to-top{position:fixed;right:max(26px,env(safe-area-inset-right));bottom:max(25px,env(safe-area-inset-bottom));z-index:55;width:53px;height:53px;display:grid;place-items:center;border-radius:50%;background:var(--ink);border:1px solid #809293;color:#f6f2e6;box-shadow:0 6px 25px #102b3324;transition:background .2s,transform .2s}.back-to-top:hover{background:#315c66;transform:translateY(-3px)}
@media(max-width:1200px){.wrap,.section-wrap{padding-left:45px;padding-right:45px}.portfolio-header{padding-left:45px;padding-right:45px}.portfolio-header nav{gap:22px;font-size:13px}.github-nav{padding-left:20px!important}.portfolio-footer{padding-left:45px;padding-right:110px}.home-hero{gap:85px;min-height:680px}.home-hero h1{font-size:105px}.home-portrait{max-width:340px}.home-hero .button{padding:13px 17px;font-size:12px;gap:21px}.research-cover{padding-left:79px}.research-cover>p{font-size:40px}.recognition-cover{padding-left:79px}.recognition-cover>p{font-size:31px}.cover-caption{left:79px}.software-copy{padding:33px}.software-copy h3{font-size:43px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:14px}.research-row{grid-template-columns:180px minmax(0,1fr) 44px;gap:29px}.research-content h3{font-size:28px}.research-content>p:not(.research-method){font-size:14px}.experience-card-copy h3{font-size:26px}.recognition-layout,.conference-recognition{gap:45px}.award{grid-template-columns:65px minmax(0,1fr) 70px;gap:17px}.award h3{font-size:25px}.programs>p:not(.eyebrow){grid-template-columns:130px 1fr}.paper-layout{gap:45px;grid-template-columns:minmax(0,1fr) 260px}.conference-feature{gap:45px}.conference-feature h3{font-size:31px}}
@media(max-width:960px){.portfolio-header nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--cream);z-index:35;padding:23px 45px;border-bottom:1px solid var(--line);box-shadow:0 15px 25px #19312b0e;flex-direction:column;align-items:stretch;gap:12px}.portfolio-header{position:relative}.portfolio-header nav.is-open{display:flex}.portfolio-header nav a{padding:9px 0}.github-nav{border-left:0;border-top:1px solid var(--line);padding-left:0!important;margin:5px 0 0}.menu-toggle{display:flex;align-items:center;gap:18px;padding:10px 14px;background:transparent;border:1px solid #adb7b1;font-size:12px;cursor:pointer}.menu-toggle span{font-size:19px;line-height:1}.home-hero{gap:60px;min-height:620px;grid-template-columns:1.15fr .85fr;padding-top:55px;padding-bottom:55px}.home-hero h1{font-size:92px}.home-role{font-size:24px}.home-intro{font-size:15px}.home-portrait:before{right:-12px;left:15px}.home-portrait img{border-width:9px}.home-portrait figcaption{font-size:13px;display:block}.home-portrait figcaption>span:last-child{display:block;margin-top:9px;font-size:9px}.home-hero .hero-actions{flex-direction:column;align-items:flex-start}.home-hero .button{font-size:12px;min-width:205px}.portfolio-index{padding-top:65px;padding-bottom:65px}.index-heading h2{font-size:43px}.index-heading>p{font-size:14px;max-width:290px}.destination-grid{gap:37px 27px}.destination-media{aspect-ratio:1.45}.research-cover{padding-top:67px;padding-left:66px}.research-cover>p{font-size:36px}.recognition-cover{padding-top:70px;padding-left:66px}.recognition-cover>p{font-size:27px}.cover-caption{left:66px;font-size:9px;bottom:21px}.destination-number{width:29px;height:29px;left:18px;top:18px;font-size:10px}.destination-copy h3{font-size:30px}.destination-copy p{font-size:13px}.home-conference{gap:40px;grid-template-columns:.5fr 1fr}.home-conference h2{font-size:29px}.home-connect h2{font-size:40px}.home-connect>.wrap{gap:45px}.page-hero{padding-top:55px;padding-bottom:43px}.page-hero h1{font-size:69px}.page-deck{font-size:18px;max-width:650px}.software-feature{grid-template-columns:1fr}.software-copy{padding:35px}.software-copy .feature-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.feature-list li{border:0}.software-visual{padding:30px}.software-visual img{max-height:500px;object-fit:contain}.software-secondary{grid-template-columns:210px 1fr;gap:30px}.software-secondary figure{height:145px}.software-secondary h3{font-size:32px}.software-secondary p:not(.eyebrow){font-size:14px}.github-section-heading{gap:30px;align-items:start;flex-direction:column}.github-section-heading h2{font-size:38px}.repository-list article{grid-template-columns:35px 1fr;gap:21px}.repository-list article>.inline-link{grid-column:2;justify-self:start;margin-top:0}.repo-index{font-size:23px}.repository-list h3{font-size:29px}.research-row{grid-template-columns:155px minmax(0,1fr) 40px;gap:24px}.research-marker>p:not(.research-professor){font-size:27px}.research-content h3{font-size:26px}.research-marker .research-professor{font-size:12px}.research-content>p:not(.research-method){font-size:14px}.research-marker small{font-size:10px}.round-link{width:40px;height:40px;font-size:22px}.experience-intro{gap:30px}.experience-intro h3{font-size:34px}.experience-intro>p{font-size:14px}.experience-card-copy h3{font-size:24px}.experience-card-copy>p:not(.eyebrow){font-size:13px}.service-note{gap:24px}.video-heading h3{font-size:34px}.video-heading p{font-size:12px}.video-project figcaption>span{font-size:9px}.video-project h4{font-size:23px}.recognition-layout{grid-template-columns:1fr;gap:30px}.recognition-subtitle{font-size:37px}.recognition-intro{max-width:600px}.award{grid-template-columns:78px minmax(0,1fr) 85px;gap:23px}.award h3{font-size:27px}.programs>p:not(.eyebrow){grid-template-columns:160px 1fr}.conference-recognition{grid-template-columns:1fr;gap:30px}.conference-recognition article{grid-template-columns:78px 1fr;gap:23px}.conference-recognition h2{font-size:38px}.conference-recognition h3{font-size:30px}.conference-feature{grid-template-columns:1fr;gap:31px}.conference-feature h2{font-size:38px}.conference-feature h3{font-size:31px}.about-section{gap:45px}.about-lead{font-size:28px}.about-section>div>p:not(.about-lead){font-size:15px}.education-block h3{font-size:29px}.contact-inner{gap:45px}.contact-inner h2{font-size:59px}.email-link{font-size:27px}.paper-hero h1{font-size:52px}.paper-layout{grid-template-columns:1fr;gap:25px}.paper-sidebar{position:static}.paper-sidebar dl{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.paper-downloads{display:flex;gap:30px}.paper-sidebar>.small-muted{max-width:600px}.gallery-intro h1{font-size:61px}}
@media(max-width:640px){.wrap,.section-wrap,.portfolio-header{padding-left:25px;padding-right:25px}.portfolio-header{padding-top:19px;padding-bottom:19px}.portfolio-header nav{padding-left:25px;padding-right:25px}.brand{font-size:14px;gap:12px}.brand-mark{width:40px;height:40px;font-size:16px}.brand-sub{font-size:8px}.menu-toggle{font-size:11px;padding:8px 11px;gap:14px}.home-hero{grid-template-columns:1fr;gap:40px;min-height:0;padding-top:43px;padding-bottom:40px}.home-hero .eyebrow{font-size:8px;letter-spacing:.11em}.home-hero h1{font-size:clamp(80px,19vw,105px);margin-top:25px;margin-bottom:25px;line-height:.95}.home-role{font-size:26px;line-height:1.32}.home-intro{font-size:15px;max-width:470px;margin-top:19px}.home-hero .hero-actions{flex-direction:row;align-items:stretch;gap:10px;margin-top:26px}.home-hero .button{font-size:10px;min-width:0;padding:13px 14px;gap:15px;min-height:46px}.home-location{font-size:10px;line-height:1.5;margin-top:22px}.home-location span{font-size:9px}.home-portrait{display:grid;grid-template-columns:135px 1fr;gap:22px;max-width:none;padding-top:25px;border-top:1px solid #4f6872;align-items:center}.home-portrait:before{display:none}.home-portrait img{width:135px;border-width:7px}.home-portrait figcaption{font-size:20px;line-height:1.35;margin:0;max-width:210px}.home-portrait figcaption>span:last-child{font-size:9px;margin-top:14px}.portfolio-index{padding-top:47px;padding-bottom:43px}.index-heading{display:block;margin-bottom:30px}.index-heading h2{font-size:38px;line-height:1.15;margin-top:13px}.index-heading>p{font-size:14px;max-width:440px;margin-top:21px}.destination-grid{grid-template-columns:1fr;gap:33px}.destination-media{aspect-ratio:1.65}.software-cover{padding:24px 30px}.destination-number{width:30px;height:30px;font-size:11px;left:18px;top:18px}.research-cover{padding:51px 30px 31px 79px}.research-cover>p{font-size:37px;line-height:1.06}.recognition-cover{padding:55px 28px 30px 79px}.recognition-cover>p{font-size:29px;line-height:1.2}.cover-caption{left:79px;font-size:8px;bottom:19px}.destination-copy{padding-top:18px}.destination-copy h3{font-size:32px}.destination-copy p{font-size:14px;line-height:1.8;margin-top:9px}.home-conference{grid-template-columns:1fr;gap:20px;padding-top:32px;padding-bottom:42px}.home-conference>.eyebrow{margin-top:0}.home-conference h2{font-size:29px;line-height:1.35}.home-conference .inline-link{font-size:12px;margin-top:19px}.home-connect>.wrap{display:block;padding-top:42px;padding-bottom:43px}.home-connect h2{font-size:37px;line-height:1.2;margin-top:12px}.home-connect>div>div:last-child{margin-top:26px}.home-connect .button{font-size:12px;min-height:48px}.home-connect>div>div>p:not(.eyebrow){font-size:12px;gap:27px;margin-top:23px}.page-hero{padding-top:42px;padding-bottom:34px}.page-hero h1{font-size:clamp(47px,12vw,64px);line-height:1.06;margin-top:19px}.page-deck{font-size:17px;line-height:1.75;margin-top:22px}.page-hero>.inline-link{font-size:12px;margin-top:23px}.eyebrow{font-size:10px}.page-main>.section{padding-top:34px;padding-bottom:44px}.software-copy{padding:26px 23px}.software-copy h3{font-size:43px}.software-lead{font-size:23px}.status{font-size:10px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:14px;line-height:1.85}.software-copy .feature-list{display:block;font-size:12px;margin-top:18px;margin-bottom:24px}.feature-list li{border-bottom:1px solid var(--line);padding-top:9px;padding-bottom:9px}.software-copy .button{font-size:12px;padding:13px 18px}.product-footnote{font-size:10px}.software-visual{padding:23px 15px}.software-visual figcaption{font-size:8px}.software-secondary{grid-template-columns:1fr;gap:21px;margin-top:29px;padding-top:27px}.software-secondary figure{height:auto;aspect-ratio:1.9}.software-secondary h3{font-size:33px}.software-secondary p:not(.eyebrow){font-size:14px}.software-secondary .eyebrow{font-size:9px}.inline-link{font-size:12px}.github-projects{padding-bottom:48px}.github-section-heading{gap:18px;margin-bottom:25px}.github-section-heading h2{font-size:35px}.repository-list article{grid-template-columns:24px 1fr;gap:17px;padding:25px 0}.repo-index{font-size:20px}.repository-list .eyebrow{font-size:8px;line-height:1.8}.repository-list h3{font-size:28px;line-height:1.25}.repository-list article>div>p:not(.eyebrow){font-size:13px}.repository-list .tags span{font-size:9px}.repo-note{font-size:11px}.research-row{grid-template-columns:minmax(0,1fr) 37px;gap:18px;padding:28px 0}.research-marker{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.research-marker>span{font-size:23px}.research-marker>p:not(.research-professor){font-size:24px;margin:0}.research-marker small{font-size:10px;margin:0 0 0 auto}.research-marker .research-professor{font-size:12px;flex-basis:100%;margin-top:0}.research-method{font-size:9px}.research-content h3{font-size:28px;line-height:1.29}.research-content>p:not(.research-method){font-size:14px;line-height:1.85}.research-content .conference-inline{font-size:11px!important}.round-link{width:37px;height:37px;font-size:21px;margin-top:27px}.tags span{font-size:9px;padding:6px 8px}.experience-intro{gap:22px;padding-bottom:27px;margin-bottom:29px}.experience-intro h3{font-size:36px}.experience-intro h3 span{font-size:13px;line-height:1.7}.experience-intro>p{font-size:14px}.experience-collections{grid-template-columns:1fr;gap:32px;margin-top:0}.experience-card-copy h3{font-size:31px}.experience-card-copy>p:not(.eyebrow){font-size:14px}.photo-cover{aspect-ratio:1.6}.service-note{grid-template-columns:1fr;gap:20px;margin-top:30px;padding:24px 0}.service-note strong{font-size:13px}.service-note p>span{font-size:12px;line-height:1.8}.video-heading h3{font-size:33px}.video-heading p{font-size:12px;line-height:1.8}.video-grid{grid-template-columns:1fr;gap:29px}.video-project h4{font-size:25px}.video-project p{font-size:12px}.video-project figcaption>span{font-size:9px}.conference-feature{padding-top:34px;padding-bottom:47px;gap:27px}.conference-feature h2,.conference-recognition h2{font-size:35px;line-height:1.18;margin-top:15px}.conference-label{font-size:11px}.conference-feature h3{font-size:30px}.conference-feature article>p:last-of-type{font-size:14px}.recognition-subtitle{font-size:36px}.recognition-intro{font-size:14px}.award{grid-template-columns:53px minmax(0,1fr);gap:17px;padding:25px 0}.award h3{font-size:27px;line-height:1.25}.award-year{font-size:11px}.award p{font-size:12px;line-height:1.8}.award-type{display:none}.programs>p:not(.eyebrow){grid-template-columns:1fr;gap:4px;font-size:13px;margin-top:20px}.conference-recognition{padding-top:33px;padding-bottom:47px;gap:29px}.conference-recognition article{grid-template-columns:1fr;gap:17px}.large-year{font-size:31px}.conference-recognition h3{font-size:30px}.conference-recognition article p{font-size:16px;line-height:1.8}.about-section{grid-template-columns:1fr;gap:35px}.about-lead{font-size:29px;line-height:1.5}.about-section>div>p:not(.about-lead){font-size:15px}.education-block h3{font-size:31px}.education-block>p:not(.eyebrow){font-size:14px}.focus-block .tags span{font-size:11px}.learning-details summary{font-size:14px}.learning-details li{font-size:13px}.learning-details li span{font-size:11px}.contact-inner{padding-top:43px;padding-bottom:43px;gap:32px}.contact-inner h2{font-size:56px}.contact-inner p:not(.eyebrow){font-size:14px}.email-link{font-size:25px;gap:21px}.resource-links>a,.resource-links>button{font-size:15px;padding:19px 0}.resource-links small{font-size:10px}.portfolio-footer{padding:26px 90px 29px 25px;gap:18px;align-items:flex-start}.portfolio-footer .brand-text{font-size:21px;flex-basis:100%}.portfolio-footer nav{font-size:10px;gap:19px;flex-wrap:wrap}.portfolio-footer>p{order:3;flex-basis:100%;font-size:10px}.paper-main{padding-top:27px}.paper-hero h1{font-size:39px;line-height:1.2}.paper-author,.paper-instructor{font-size:12px;line-height:1.8}.paper-body h2{font-size:30px;line-height:1.35}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:15px;line-height:1.9}.paper-body .paper-abstract{font-size:16px!important}.paper-sidebar{padding:22px}.paper-sidebar dd{font-size:12px}.paper-downloads{display:block}.paper-downloads a{font-size:12px}.paper-next{font-size:11px}.conference-callout{padding:24px 22px;margin-top:25px}.conference-callout>.eyebrow{font-size:9px;line-height:1.8}.conference-callout h2{font-size:27px;line-height:1.4}.conference-callout>p:last-child{font-size:11px}.gallery-intro{padding-top:40px}.gallery-intro h1{font-size:47px;line-height:1.1}.gallery-lead{font-size:23px}.gallery-context{font-size:16px}.collection-nav{font-size:12px;gap:18px}.gallery-end{font-size:12px}.gallery-item h2{font-size:28px}.gallery-item figcaption p{font-size:14px}.back-to-top{width:49px;height:49px;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}.destination-media>img{transition:none}}
@media(max-width:640px){.home-hero h1{font-size:clamp(64px,20vw,105px)}.research-row{grid-template-columns:1fr}.research-marker{grid-column:auto}.research-row .round-link{display:none}}
@media(max-width:380px){.research-cover{padding-top:43px;padding-left:65px;padding-right:15px}.research-cover>p{font-size:29px;line-height:1}.recognition-cover{padding-top:44px;padding-left:65px;padding-right:15px}.recognition-cover>p{font-size:23px;line-height:1.2}.cover-caption{left:65px;bottom:15px;font-size:7px}.home-portrait{grid-template-columns:110px 1fr;gap:19px}.home-portrait img{width:110px}.home-portrait figcaption{font-size:18px}.email-link{font-size:22px;gap:15px}.hero-actions .button{font-size:9px;gap:12px;padding-left:12px;padding-right:12px}}

@font-face{font-family:'Instrument Serif';src:url('assets/fonts/InstrumentSerif-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('assets/fonts/InstrumentSerif-Italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'Manrope';src:url('assets/fonts/Manrope-Variable.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--serif:'Instrument Serif',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--ink:#292923;--muted:#68695f;--green:#81523e;--brass:#81523e;--cream:#f6f3ec;--white:#fffdf8;--line:#d7d4ca;--accent:#81523e;--sage:#e5e8de}
html{scrollbar-gutter:stable;scroll-padding-top:112px}body{font-family:var(--sans);font-synthesis:none;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--serif);font-weight:400}em{font-weight:400}::selection{background:#d9bd9d;color:#272820}a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap,.section-wrap{max-width:1360px;padding-left:64px;padding-right:64px}.eyebrow{font-size:10px;line-height:1.6;letter-spacing:.14em;color:var(--accent);font-weight:600}
.portfolio-header{position:sticky;top:0;z-index:50;max-width:1500px;padding:20px 64px;gap:38px;background:#f6f3eced;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid #d7d4caad}.brand{font-size:14px;letter-spacing:-.03em;gap:14px;font-weight:600;line-height:1.3}.brand-mark{border:1px solid #6e7165;background:transparent;color:var(--ink);font-family:var(--serif);font-size:25px;letter-spacing:-.08em;width:43px;height:43px;border-radius:50%;font-weight:400}.brand-sub{font-size:7px;font-weight:500;letter-spacing:.095em;text-transform:uppercase;color:var(--muted);margin-top:5px}.portfolio-header nav{font-size:11px;gap:27px;letter-spacing:.015em}.portfolio-header nav a{position:relative;padding:8px 0}.portfolio-header nav a:not(.github-nav):after{content:'';position:absolute;left:0;right:0;bottom:1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}.portfolio-header nav a:hover{text-decoration:none;color:var(--accent)}.portfolio-header nav a:hover:after,.portfolio-header nav a[aria-current="page"]:after{transform:scaleX(1)}.portfolio-header nav a[aria-current="page"]{color:var(--accent);text-decoration:none}.github-nav{gap:7px;border-left:1px solid var(--line);padding-left:24px!important;margin-left:0}.github-nav svg{width:14px;height:14px}.menu-toggle{border:1px solid #a7aa9b;padding:9px 13px;font-size:10px}.menu-toggle span{transition:transform .2s}.menu-toggle[aria-expanded="true"] span{transform:rotate(45deg)}
.button{border-radius:1px;font-size:11px;letter-spacing:.015em;font-weight:550;min-height:49px;padding:14px 23px;gap:32px;transition:background .2s,color .2s,box-shadow .2s}.button.primary{background:var(--ink);border-color:var(--ink);color:var(--cream)}.button.primary:hover{background:var(--accent);border-color:var(--accent)}.button span,.inline-link span,.quiet-link span,.resource-links>a>span:last-child{transition:transform .2s}.button:hover>span,.inline-link:hover>span,.quiet-link:hover>span{transform:translate(2px,-2px)}.button.outline{background:transparent;border-color:#afb2a2}.button.outline:hover{background:#eae6dc}.quiet-link{display:inline-flex;align-items:center;gap:26px;border-bottom:1px solid #959889;padding:9px 0;font-size:11px;color:var(--ink)}.quiet-link:hover{color:var(--accent);border-color:var(--accent)}.inline-link{font-size:11px;font-weight:550;gap:25px;border-color:#b4b7a4;padding-bottom:6px;line-height:1.7}.tags{gap:8px}.tags span,.focus-block .tags span{font-size:9px;letter-spacing:.015em;border:0;border-radius:0;background:#e8e8de;color:#5c6555;padding:6px 9px}.small-muted{font-size:11px!important}.portfolio-footer{max-width:1500px;padding:45px 114px 38px 64px;display:grid;grid-template-columns:1.1fr 1fr auto;gap:40px;align-items:center;border-top:1px solid var(--line);font-family:var(--sans)}.portfolio-footer .brand-text{font-family:var(--serif);font-size:33px;letter-spacing:-.025em;line-height:1.2}.footer-signature>p{font-size:9px;color:var(--muted);margin-top:10px;line-height:1.8}.portfolio-footer nav{display:flex;justify-content:center;gap:27px;font-size:10px}.portfolio-footer nav a{display:inline-flex;align-items:center;gap:12px}.footer-colophon{font-size:8px;line-height:1.9;text-align:right;color:#797c70;letter-spacing:.02em}
/* The cover */
.editorial-hero{display:grid;grid-template-columns:1.32fr .68fr;gap:55px 110px;align-items:center;padding-top:65px;padding-bottom:27px}.editorial-hero-copy h1{font-family:var(--serif);font-size:clamp(105px,13.8vw,179px);letter-spacing:-.05em;line-height:.82;margin:31px 0 34px;font-weight:400}.editorial-hero-copy h1 em{font-style:italic;color:var(--accent);letter-spacing:-.065em}.editorial-hero-copy .eyebrow{font-size:9px;letter-spacing:.15em}.editorial-intro{font-size:16px;line-height:1.9;max-width:430px;color:var(--muted);letter-spacing:-.015em}.editorial-actions{display:flex;gap:26px;align-items:center;margin-top:27px}.editorial-portrait{max-width:340px;justify-self:end;align-self:center;padding-top:20px}.image-index{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#7d8172;display:block;margin-bottom:15px}.editorial-portrait-image{overflow:hidden;background:#e7e7df}.editorial-portrait-image img{width:100%;height:auto;aspect-ratio:.89;object-fit:cover;object-position:50% 38%;filter:saturate(.88);transition:filter .45s,transform .7s}.editorial-portrait:hover img{filter:saturate(1);transform:scale(1.015)}.editorial-portrait figcaption{display:flex;justify-content:space-between;align-items:center;gap:22px;border-bottom:1px solid var(--line);padding:17px 0 16px}.editorial-portrait figcaption p{font-size:9px;line-height:1.9;letter-spacing:.025em;color:var(--muted)}.editorial-portrait figcaption a{font-size:25px;color:var(--accent);font-weight:300;line-height:1;padding:7px}.hero-facts{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;border-top:1px solid var(--line);padding-top:22px;gap:25px;font-size:9px;color:#75796b;letter-spacing:.03em}.hero-facts>p:nth-child(2){text-align:center}.hero-facts>a{display:flex;gap:28px;align-items:center}.hero-facts>a>span{font-size:17px;line-height:1}.hero-facts a:hover{color:var(--accent)}
/* A deliberate selection, followed by the full directory. */
.curated-work{padding-top:75px;padding-bottom:77px}.curated-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:37px}.curated-heading h2{font-size:64px;line-height:.98;letter-spacing:-.035em;margin-top:18px}.curated-heading h2 em{color:var(--accent)}.curated-heading>p{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:3px}.curated-grid{display:grid;grid-template-columns:1.27fr .73fr;gap:42px;align-items:start}.curated-image{position:relative;display:block;padding:24px 24px 39px;background:#e3e9df;overflow:hidden;aspect-ratio:1.46}.curated-image img{width:100%;height:100%;object-fit:contain;box-shadow:0 12px 35px #274a3510;transition:transform .55s}.curated-image:hover img{transform:translateY(-3px) scale(1.014)}.image-credit{position:absolute;left:24px;bottom:15px;font-size:7px;letter-spacing:.03em;color:#6d7a6a}.curated-caption{padding-top:21px}.work-meta{display:flex;align-items:center;gap:7px;font-size:8px;line-height:1.9;letter-spacing:.04em;text-transform:uppercase;color:#7b7e70}.meta-divider{color:#a4a994;padding:0 3px}.live-dot{width:4px;height:4px;background:#5f7f5c;border-radius:50%;display:inline-block}.curated-caption h3{font-size:47px;line-height:1.14;letter-spacing:-.025em;margin-top:10px}.curated-caption h3 a{display:block}.curated-caption h3 em{font-style:italic}.software-project .curated-caption h3 a>span{float:right;font-family:var(--sans);font-size:25px;font-weight:300;padding-top:13px;transition:transform .2s}.software-project .curated-caption h3 a:hover>span{transform:translate(3px,-3px)}.curated-caption>p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:13px;max-width:470px}.research-art{position:relative;background:#e9e3d6;display:flex;flex-direction:column;justify-content:space-between;padding:25px 28px 26px;aspect-ratio:.98;overflow:hidden;color:#454d3d}.art-meta{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:7px;letter-spacing:.07em;text-transform:uppercase;color:#7b826e}.research-art>p{font-family:var(--serif);font-size:clamp(48px,5.5vw,73px);line-height:.91;letter-spacing:-.035em;margin-top:14px;margin-bottom:20px;transition:transform .5s}.research-art>p em{color:#805940}.art-bottom{font-size:7px;letter-spacing:.015em;color:#737c65;max-width:230px;line-height:1.7}.art-arrow{position:absolute;right:26px;bottom:22px;font-size:24px;font-weight:300;transition:transform .2s}.research-art:hover .art-arrow{transform:translate(3px,-3px)}.research-art:hover>p{transform:translateY(-3px)}.curated-caption h3.conference-feature-title{font-size:28px;line-height:1.35;letter-spacing:-.015em}.conference-feature-title a:hover{color:var(--accent)}.editorial-directory{padding-top:35px;padding-bottom:82px}.directory-heading{display:flex;justify-content:space-between;align-items:baseline;gap:45px;border-top:1px solid var(--line);padding-top:35px;padding-bottom:32px}.directory-heading h2{font-size:52px;line-height:1.1;letter-spacing:-.025em}.directory-heading h2 em{color:var(--accent)}.directory-list>a{display:grid;grid-template-columns:55px 1fr 1fr 45px;gap:33px;align-items:center;padding:28px 0;border-top:1px solid var(--line);transition:padding .25s,background .25s}.directory-list>a:last-child{border-bottom:1px solid var(--line)}.directory-number{font-size:10px;letter-spacing:.04em;color:#8a8d7d}.directory-list h3{font-size:48px;line-height:1.1;letter-spacing:-.025em;transition:color .2s}.directory-list p{font-size:11px;line-height:1.8;color:var(--muted)}.directory-arrow{font-size:28px;font-weight:300;justify-self:end;color:#747c6c;transition:transform .2s,color .2s}.directory-list>a:hover h3{color:var(--accent)}.directory-list>a:hover .directory-arrow{transform:translate(4px,-4px);color:var(--accent)}.editorial-contact{background:#e5e6dc;border-top:1px solid #d4d7c9}.editorial-contact>.wrap{padding-top:53px;padding-bottom:34px}.editorial-contact-row{display:flex;justify-content:space-between;align-items:center;gap:60px;margin-top:20px}.editorial-contact h2{font-size:76px;line-height:.99;letter-spacing:-.035em}.editorial-contact h2 em{color:var(--accent)}.contact-orbit{display:grid;place-items:center;border:1px solid #9fa795;width:91px;height:91px;border-radius:50%;font-size:45px;font-weight:300;transition:background .2s,color .2s,transform .2s}.contact-orbit:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);transform:rotate(5deg)}.editorial-contact-bottom{border-top:1px solid #c6cbbb;margin-top:39px;padding-top:23px;display:flex;justify-content:space-between;gap:30px;font-size:11px;color:#5c6555}.editorial-contact-bottom a:last-child{display:flex;gap:27px}.editorial-contact-bottom a:hover{color:var(--accent)}
/* Page openings and the reading system. */
.page-hero{padding-top:57px;padding-bottom:43px}.page-hero h1{font-size:clamp(67px,7.4vw,99px);line-height:.97;letter-spacing:-.035em;margin-top:25px;max-width:950px}.page-hero h1 em{color:var(--accent);letter-spacing:-.04em}.page-deck{font-size:15px;line-height:1.9;max-width:590px;margin-top:24px;color:var(--muted)}.page-hero>.inline-link{margin-top:22px}.page-main>.section{padding-top:45px;padding-bottom:64px}.page-main>.standalone-research{padding-top:12px;padding-bottom:43px}.page-main>.standalone-research .research-row:first-child{border-top:0}.software-feature{border:0;background:var(--white);grid-template-columns:.82fr 1.18fr}.software-copy{padding:39px 36px}.software-copy h3{font-size:54px;line-height:1.03;letter-spacing:-.035em}.software-lead{font-family:var(--serif);font-size:25px;font-style:italic;color:var(--accent);margin-top:10px;margin-bottom:20px}.status{font-size:9px;line-height:1.8;color:#657b5b}.status-dot{background:#688863;width:4px;height:4px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:13px;line-height:1.95;color:var(--muted)}.feature-list{font-size:11px;line-height:1.8;margin-top:18px;margin-bottom:24px}.feature-list li{border-bottom:1px solid #e3e5d9;padding-top:8px;padding-bottom:8px}.feature-list li:before{color:#8a9278}.product-footnote{font-size:9px}.software-visual{background:#e3e9df;padding:30px 23px}.software-visual a{border:0;box-shadow:0 9px 28px #274f3710}.software-visual figcaption{font-size:8px;color:#707e69}.software-secondary{grid-template-columns:280px 1fr;gap:44px;padding-top:32px;margin-top:35px}.software-secondary figure{height:163px;border-color:#dadfd0}.software-secondary h3{font-size:40px;line-height:1.13;letter-spacing:-.025em}.software-secondary p:not(.eyebrow){font-size:13px;line-height:1.9}.software-secondary .eyebrow{font-size:8px}.github-projects{padding-bottom:62px}.github-section-heading{margin-bottom:28px}.github-section-heading h2{font-size:48px;line-height:1.1;letter-spacing:-.025em;margin-top:15px}.repository-list article{grid-template-columns:43px 1fr 120px;gap:28px;padding:29px 0}.repository-list h3{font-size:35px;line-height:1.15}.repository-list article>div>p:not(.eyebrow){font-size:13px;line-height:1.9;max-width:690px}.repository-list .eyebrow{font-size:8px}.repo-index{font-family:var(--sans);font-size:10px;color:#8a907d}.repo-note{font-size:10px}.research-row{grid-template-columns:185px minmax(0,1fr) 40px;gap:42px;padding-top:38px;padding-bottom:38px;align-items:start}.research-marker>span{font-family:var(--sans);font-size:9px;color:#89917c;letter-spacing:.05em}.research-marker>p:not(.research-professor){font-size:31px;line-height:1.2;letter-spacing:-.015em;margin-top:14px}.research-marker small{font-size:9px;color:#888c7b;line-height:1.8;margin-top:10px}.research-marker .research-professor{font-size:11px;line-height:1.9;color:#656c5b;margin-top:13px}.research-method{font-size:8px;letter-spacing:.11em;color:#8b907e;margin-bottom:12px}.research-content h3{font-size:36px;line-height:1.17;letter-spacing:-.02em;max-width:760px}.research-content>p:not(.research-method){font-size:13px;line-height:1.95;color:var(--muted);margin-top:17px;max-width:700px}.research-content .conference-inline{font-size:10px!important;color:#8b614c!important;line-height:1.9}.round-link{width:38px;height:38px;font-size:21px;border-color:#b9bfae;color:#727e66;align-self:center}.round-link:hover{background:var(--ink);border-color:var(--ink);color:var(--cream)}.experience-intro{gap:76px;padding-bottom:32px;margin-bottom:33px}.experience-intro h3{font-size:44px;line-height:1.1}.experience-intro h3 span{font-size:11px;line-height:1.8;margin-top:13px}.experience-intro>p{font-size:14px;line-height:1.95;max-width:620px}.experience-collections{gap:28px;margin-top:35px}.photo-cover{aspect-ratio:1.36}.photo-cover img{filter:saturate(.85);transition:transform .65s,filter .4s}.experience-card:hover .photo-cover img{transform:scale(1.025);filter:saturate(1)}.experience-card-copy{padding-top:18px}.experience-card-copy .eyebrow{font-size:8px}.experience-card-copy h3{font-size:32px;line-height:1.16;letter-spacing:-.02em;margin-top:10px}.experience-card-copy h3 span{font-size:20px;font-weight:300}.experience-card-copy>p:not(.eyebrow){font-size:12px;line-height:1.85;margin-top:13px}.service-note{margin-top:37px;padding:25px 0;gap:35px}.service-note>.eyebrow{font-size:8px}.service-note strong{font-size:11px;font-weight:550}.service-note p>span{font-size:11px;line-height:1.9}.video-heading{margin-top:44px;margin-bottom:25px}.video-heading h3{font-size:43px;line-height:1.1;letter-spacing:-.025em}.video-heading p{font-size:11px}.video-grid{gap:29px}.video-project h4{font-size:28px;line-height:1.16}.video-project p{font-size:10px;line-height:1.8;margin-top:7px}.video-project figcaption>span{font-size:8px;border-color:#cbd1be;color:#747f65;padding:5px 8px}.conference-feature{gap:80px;padding-top:39px;padding-bottom:65px}.conference-feature h2,.conference-recognition h2{font-size:48px;line-height:1.02;letter-spacing:-.025em;margin-top:20px}.conference-feature h3{font-size:37px;line-height:1.22;letter-spacing:-.02em;margin-top:16px}.conference-label{font-size:10px;color:#8a634e;line-height:1.8}.conference-feature article>p:last-of-type{font-size:13px;line-height:1.9;margin-top:20px}.recognition-layout{gap:75px}.recognition-subtitle{font-size:47px;line-height:1.04;letter-spacing:-.025em;margin-bottom:24px}.recognition-intro{font-size:13px;line-height:1.95;max-width:280px}.award{grid-template-columns:67px minmax(0,1fr) 79px;gap:20px;padding:27px 0;border-color:#d0d6c4}.award h3{font-size:31px;line-height:1.16;letter-spacing:-.015em}.award p{font-size:11px;line-height:1.9;margin-top:11px}.award-year{font-size:10px;color:#8d7358;padding-top:8px}.award-type{font-size:7px;letter-spacing:.07em;color:#8c927e;line-height:1.8;padding-top:8px}.programs>.eyebrow{font-size:8px}.programs>p:not(.eyebrow){font-size:11px;line-height:1.9;grid-template-columns:140px 1fr;gap:20px;margin-top:18px}.programs strong{font-weight:550}.programs p>span{color:#7d8471}.conference-recognition{grid-template-columns:.65fr 1.35fr;gap:75px;padding-top:41px;padding-bottom:65px}.conference-recognition article{grid-template-columns:67px 1fr;gap:20px}.large-year{font-family:var(--sans);font-size:10px;letter-spacing:.02em;color:#8d7358;padding-top:9px}.conference-recognition h3{font-size:38px;line-height:1.15;letter-spacing:-.02em}.conference-recognition article p{font-size:16px;line-height:1.9;color:var(--muted);margin-top:18px}.about-section{gap:110px}.about-lead{font-size:38px;line-height:1.2;letter-spacing:-.02em}.about-section>div>p:not(.about-lead){font-size:14px;line-height:2;margin-top:25px;max-width:550px}.education-block h3{font-size:37px;line-height:1.1;letter-spacing:-.02em;margin-top:17px}.education-block>p:not(.eyebrow){font-size:13px;line-height:1.9}.focus-block{margin-top:30px;padding-top:26px}.focus-block .tags span{font-size:10px}.learning-details{margin-top:29px}.learning-details summary{font-size:12px;padding:19px 0}.learning-details li{font-size:11px;padding-top:10px;padding-bottom:10px}.learning-details li span{font-size:10px;line-height:1.9}.contact-section{background:#e5e6dc;color:var(--ink)}.contact-inner{gap:90px;padding-top:55px;padding-bottom:55px}.contact-inner .eyebrow{color:#717d60;font-size:8px}.contact-inner h2{font-size:83px;line-height:.98;letter-spacing:-.035em;margin-top:22px}.contact-inner p:not(.eyebrow){color:#747c67;font-size:13px;line-height:1.9;margin-top:24px}.email-link{font-family:var(--serif);font-size:36px;line-height:1.2;gap:25px;margin-top:29px;letter-spacing:-.015em}.email-link:hover{color:var(--accent)}.resource-links>a,.resource-links>button{font-size:13px;color:var(--ink);border-color:#bac2ad;padding:21px 0}.resource-links>a:last-child,.resource-links>button:last-child{border-bottom-color:#bac2ad}.resource-links small{font-size:9px;color:#7a846b;line-height:1.9}.resource-links>a:hover,.resource-links>button:hover{color:var(--accent)}.chapter-next{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-top:37px;padding-bottom:39px;border-top:1px solid var(--line)}.chapter-next>span{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#8b907e}.chapter-next>a{display:flex;align-items:center;gap:60px;font-family:var(--serif);font-size:39px;line-height:1.1;letter-spacing:-.02em}.chapter-next>a>span{font-family:var(--sans);font-weight:300;font-size:26px;transition:transform .2s}.chapter-next>a:hover{color:var(--accent)}.chapter-next>a:hover>span{transform:translate(4px,-4px)}
/* Research detail pages and retained galleries. */
.paper-main{padding-top:34px;padding-bottom:43px}.back-link{font-size:10px;border-color:#b6bca8;padding-bottom:6px}.paper-hero{padding-top:32px;padding-bottom:34px}.paper-hero h1{font-size:clamp(41px,4.7vw,65px);line-height:1.1;letter-spacing:-.025em;margin-top:24px;margin-bottom:25px;max-width:1030px}.paper-author,.paper-instructor{font-size:11px;line-height:1.9}.paper-instructor{color:#8a634e;margin-top:8px}.paper-actions{margin-top:26px}.paper-layout{grid-template-columns:minmax(0,1fr) 270px;gap:85px;padding-top:44px}.paper-body h2{font-size:39px;line-height:1.12;letter-spacing:-.025em;margin-top:15px}.paper-body>section{margin-bottom:44px}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:14px;line-height:2;max-width:720px}.paper-body .paper-abstract{font-size:16px!important;line-height:2!important;color:#4c5547!important}.paper-sidebar{position:sticky;top:110px;background:#edeee4;border:0;padding:25px 25px 29px}.paper-sidebar>.eyebrow{font-size:8px}.paper-sidebar dl>div{border-color:#d0d6c3;padding:15px 0}.paper-sidebar dt{font-size:8px;line-height:1.9;letter-spacing:.1em;color:#8a917c}.paper-sidebar dd{font-size:11px;line-height:1.9;color:#5b6652;margin-top:8px}.paper-downloads a{font-size:10px;line-height:1.9;border-color:#c7d0b8;padding:13px 0;color:#7c5b43}.paper-sidebar>.small-muted{font-size:9px!important;line-height:2;color:#859078}.model-diagram,.theme-diagram{background:#e7e9dd;padding:28px}.model-diagram p,.theme-diagram p{font-family:var(--serif);font-size:24px!important;line-height:1.15!important;color:#526045!important}.model-diagram small{font-family:var(--sans);font-size:8px;line-height:1.9}.theme-diagram>div{font-size:10px;color:#6a7959}.diagram-caption{font-size:8px;line-height:1.9;color:#8b947e;margin-top:13px}.conference-callout{background:#e8e5d9;padding:28px 31px;border-left:2px solid #a17b5d;margin-top:27px}.conference-callout h2{font-size:32px;line-height:1.25;letter-spacing:-.02em;max-width:950px;margin-top:16px}.conference-callout>.eyebrow{font-size:8px}.conference-callout>p:last-child{font-size:10px;line-height:1.9;color:#8a826d;margin-top:15px}.paper-next{padding-top:27px;font-size:11px}.paper-scope{padding-top:28px}.findings{margin-top:23px}.findings li{margin-bottom:18px;padding-left:9px}.findings li::marker{color:#a78666}.gallery-intro{padding-top:49px;padding-bottom:33px}.gallery-intro h1{font-size:79px;line-height:1;letter-spacing:-.03em;margin-top:20px}.gallery-lead{font-family:var(--serif);font-size:31px;line-height:1.3;max-width:730px;letter-spacing:-.015em;margin-top:26px}.gallery-context{font-size:13px;line-height:2;max-width:760px;margin-top:19px}.collection-nav{font-size:11px;gap:29px;margin-top:28px;border-color:var(--line)}.collection-nav a{border-bottom-width:1px;padding:14px 0}.collection-nav a[aria-current]{border-color:var(--accent);color:var(--accent)}.photo-gallery{gap:38px 32px;padding-bottom:42px}.photo-gallery .photo-button img{transition:transform .65s,filter .4s;filter:saturate(.88)}.photo-gallery .photo-button:hover img{filter:saturate(1);transform:scale(1.015)}.photo-gallery .enlarge{font-size:9px;padding:9px 13px;font-weight:500;background:#f6f3eceb;color:#687459;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.photo-button:hover .enlarge,.photo-button:focus-visible .enlarge{opacity:1;transform:none}.photo-gallery figcaption{padding-top:18px}.gallery-item h2{font-size:33px;line-height:1.1;letter-spacing:-.015em}.gallery-item figcaption p{font-size:11px;line-height:1.9;margin-top:10px}.gallery-end{font-size:11px;padding-bottom:40px}.video-section h2{font-size:45px;line-height:1.1}.lightbox{background:#242b25;color:#f4f1e5}.lightbox::backdrop{background:#242b25}.lightbox-caption h2{font-size:29px;line-height:1.1}.lightbox-caption p{font-size:11px;line-height:1.9;color:#aebda4}.lightbox-toolbar p{font-size:10px;color:#aebda4}.icon-button{font-size:11px;border-color:#70836a;color:#f4f1e5}.photo-nav{background:#33442f;border-color:#70836a}.photo-nav:hover{background:#526748}
.back-to-top{position:fixed;right:27px;bottom:26px;width:54px;height:54px;z-index:55;border:1px solid #cbcdbf;border-radius:50%;background:#f6f3ecf2;color:#6f5845;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 17px #4348380a;display:grid;place-items:center;transition:background .2s,color .2s,transform .2s}.back-to-top:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);transform:translateY(-3px)}.top-progress{position:absolute;inset:-1px;width:54px;height:54px;transform:rotate(-90deg);pointer-events:none;overflow:visible}.top-progress circle{fill:none;stroke:#9f795a;stroke-width:1.3;stroke-dasharray:144.513;stroke-dashoffset:144.513}.top-arrow{position:relative;width:20px;height:20px}
@media(min-width:1500px){.editorial-hero{padding-top:83px;padding-bottom:29px;gap:67px 135px}.editorial-hero-copy h1{font-size:185px}.editorial-portrait{max-width:370px}.editorial-intro{font-size:17px}.curated-work{padding-top:90px}.curated-heading h2{font-size:70px}}
@media(max-width:1150px){.wrap,.section-wrap{padding-left:43px;padding-right:43px}.portfolio-header{padding-left:43px;padding-right:43px;gap:30px}.portfolio-header nav{gap:22px;font-size:10px}.github-nav{padding-left:20px!important}.brand{font-size:13px;gap:12px}.brand-sub{font-size:6px}.portfolio-footer{padding-left:43px;padding-right:105px;gap:30px}.portfolio-footer nav{gap:20px;font-size:9px}.editorial-hero{gap:49px 75px;padding-top:57px}.editorial-hero-copy h1{font-size:clamp(110px,14.5vw,160px)}.editorial-portrait{max-width:315px}.editorial-intro{font-size:15px}.editorial-actions{gap:23px}.curated-grid{gap:31px}.curated-heading h2{font-size:59px}.curated-heading>p{font-size:11px}.curated-caption h3{font-size:43px}.curated-caption h3.conference-feature-title{font-size:26px}.research-art{padding:22px 24px;aspect-ratio:.91}.research-art>p{font-size:65px}.art-meta{font-size:6px}.art-bottom{font-size:6px;max-width:190px}.directory-list>a{grid-template-columns:40px 1fr 1fr 35px;gap:28px}.directory-list h3{font-size:44px}.directory-list p{font-size:10px}.editorial-contact h2{font-size:68px}.software-copy{padding:32px}.software-copy h3{font-size:49px}.research-row{grid-template-columns:160px minmax(0,1fr) 38px;gap:31px}.research-content h3{font-size:33px}.experience-intro{gap:50px}.experience-card-copy h3{font-size:29px}.recognition-layout,.conference-recognition{gap:49px}.award{grid-template-columns:56px minmax(0,1fr) 67px;gap:18px}.award h3{font-size:29px}.programs>p:not(.eyebrow){grid-template-columns:125px 1fr;gap:18px}.conference-recognition article{grid-template-columns:56px 1fr;gap:18px}.conference-feature{gap:50px}.paper-layout{gap:50px;grid-template-columns:minmax(0,1fr) 250px}.about-section{gap:70px}.contact-inner{gap:55px}.email-link{font-size:32px}}
@media(max-width:960px){.portfolio-header nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:60;background:#f6f3ecf7;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:20px 43px 26px;box-shadow:0 12px 20px #34392c06;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:5px;font-size:12px}.portfolio-header nav.is-open{display:flex}.portfolio-header nav a{padding:11px 0}.portfolio-header nav a:after{display:none}.github-nav{border:0;border-top:1px solid var(--line);margin-top:10px;padding-top:16px!important;padding-left:0!important}.menu-toggle{display:flex;align-items:center;gap:18px;background:transparent;color:var(--ink)}.editorial-hero{grid-template-columns:1.2fr .8fr;gap:42px 45px;padding-top:49px}.editorial-hero-copy h1{font-size:clamp(100px,14.5vw,136px);margin-top:27px;margin-bottom:30px}.editorial-hero-copy .eyebrow{font-size:8px;letter-spacing:.12em}.editorial-intro{font-size:13px;line-height:1.95;max-width:345px}.editorial-actions{flex-wrap:wrap;gap:17px}.editorial-actions .button{font-size:10px;padding:13px 17px;gap:22px;min-height:45px}.quiet-link{font-size:10px;gap:20px}.editorial-portrait{padding-top:11px;max-width:290px}.image-index{font-size:7px;letter-spacing:.1em}.editorial-portrait figcaption p{font-size:8px}.hero-facts{font-size:8px;gap:20px;padding-top:19px}.curated-work{padding-top:59px;padding-bottom:60px}.curated-heading{gap:40px;margin-bottom:31px}.curated-heading h2{font-size:55px}.curated-heading>p{font-size:10px}.curated-grid{grid-template-columns:1.16fr .84fr;gap:27px}.curated-image{padding:18px 18px 32px;aspect-ratio:1.2}.image-credit{left:18px;bottom:13px;font-size:6px}.research-art{padding:20px;aspect-ratio:.87}.research-art>p{font-size:57px;line-height:.93}.art-meta{flex-direction:column;align-items:start;gap:7px;font-size:6px}.art-bottom{font-size:6px;max-width:170px}.art-arrow{right:18px;bottom:17px;font-size:21px}.curated-caption{padding-top:18px}.work-meta{font-size:7px;gap:5px;flex-wrap:wrap}.curated-caption h3{font-size:39px}.curated-caption h3.conference-feature-title{font-size:24px}.curated-caption>p{font-size:11px}.editorial-directory{padding-top:24px;padding-bottom:58px}.directory-heading{padding-top:29px;padding-bottom:28px;gap:30px}.directory-heading h2{font-size:46px}.directory-heading .eyebrow{font-size:8px}.directory-list>a{grid-template-columns:29px 1fr 1fr 29px;gap:24px;padding:25px 0}.directory-number{font-size:8px}.directory-list h3{font-size:40px}.directory-list p{font-size:9px}.directory-arrow{font-size:24px}.editorial-contact>.wrap{padding-top:43px;padding-bottom:30px}.editorial-contact h2{font-size:62px}.contact-orbit{width:75px;height:75px;font-size:35px}.editorial-contact-bottom{margin-top:31px;font-size:10px}.portfolio-footer{grid-template-columns:1fr 1fr;gap:25px 30px}.footer-colophon{grid-column:1/-1;text-align:left;font-size:7px}.portfolio-footer nav{justify-content:flex-end}.page-hero{padding-top:44px;padding-bottom:35px}.page-hero h1{font-size:77px}.page-deck{font-size:14px;max-width:575px}.software-feature{grid-template-columns:1fr}.software-copy{padding:34px}.software-copy .feature-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.feature-list li{border:0}.software-copy h3{font-size:53px}.software-visual{padding:29px}.software-secondary{grid-template-columns:210px 1fr;gap:31px}.software-secondary figure{height:142px}.software-secondary h3{font-size:36px}.github-section-heading{gap:28px;align-items:start;flex-direction:column}.github-section-heading h2{font-size:44px}.repository-list article{grid-template-columns:28px 1fr;gap:22px}.repository-list article>.inline-link{grid-column:2;justify-self:start;margin-top:0}.research-row{grid-template-columns:140px minmax(0,1fr) 35px;gap:25px}.research-marker>p:not(.research-professor){font-size:29px}.research-marker .research-professor{font-size:10px}.research-marker small{font-size:8px}.research-content h3{font-size:31px}.research-content>p:not(.research-method){font-size:12px}.round-link{width:35px;height:35px;font-size:19px}.experience-intro{gap:32px}.experience-intro h3{font-size:39px}.experience-intro>p{font-size:13px}.experience-card-copy h3{font-size:27px}.experience-card-copy>p:not(.eyebrow){font-size:11px}.video-heading h3{font-size:39px}.video-heading p{font-size:10px}.recognition-layout,.conference-recognition{grid-template-columns:1fr;gap:31px}.recognition-subtitle{font-size:43px}.recognition-intro{max-width:600px}.award{grid-template-columns:68px minmax(0,1fr) 80px;gap:22px}.award h3{font-size:32px}.programs>p:not(.eyebrow){grid-template-columns:150px 1fr}.conference-recognition article{grid-template-columns:68px 1fr;gap:22px}.conference-feature{grid-template-columns:1fr;gap:31px}.conference-feature h2,.conference-recognition h2{font-size:44px}.conference-feature h3{font-size:35px}.about-section{gap:47px}.about-lead{font-size:35px}.contact-inner{gap:40px}.contact-inner h2{font-size:74px}.paper-hero h1{font-size:55px}.paper-layout{grid-template-columns:1fr;gap:24px}.paper-sidebar{position:static}.paper-sidebar dl{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}.paper-downloads{display:flex;gap:30px}.paper-sidebar>.small-muted{max-width:600px}.gallery-intro h1{font-size:71px}}
@media(max-width:640px){html{scroll-padding-top:93px}.wrap,.section-wrap{padding-left:26px;padding-right:26px}.portfolio-header{padding:16px 26px;gap:20px}.brand{gap:11px;font-size:12px;letter-spacing:-.02em}.brand-mark{width:37px;height:37px;font-size:22px}.brand-sub{font-size:5px;letter-spacing:.08em}.menu-toggle{gap:14px;padding:8px 10px;font-size:9px}.menu-toggle span{font-size:16px}.portfolio-header nav{padding-left:26px;padding-right:26px;font-size:12px}.button{font-size:10px;padding:13px 18px;gap:24px;min-height:46px}.eyebrow{font-size:8px;letter-spacing:.11em}.inline-link{font-size:10px;gap:20px}.quiet-link{font-size:10px;gap:24px}.tags span,.focus-block .tags span{font-size:8px;padding:6px 8px}.portfolio-footer{padding:32px 88px 31px 26px;grid-template-columns:1fr;gap:26px}.portfolio-footer .brand-text{font-size:32px;flex-basis:auto}.footer-signature>p{font-size:8px;margin-top:8px}.portfolio-footer nav{justify-content:flex-start;gap:22px;font-size:9px}.footer-colophon{grid-column:auto;font-size:7px;line-height:1.9}.editorial-hero{grid-template-columns:1fr;gap:32px;padding-top:39px;padding-bottom:22px}.editorial-hero-copy h1{font-size:clamp(105px,27vw,157px);line-height:.84;margin-top:26px;margin-bottom:28px;letter-spacing:-.045em}.editorial-hero-copy h1 em{letter-spacing:-.065em}.editorial-hero-copy .eyebrow{font-size:7px;letter-spacing:.12em}.editorial-intro{font-size:14px;line-height:1.95;max-width:455px}.editorial-actions{gap:25px;margin-top:24px;flex-wrap:nowrap}.editorial-actions .button{font-size:10px;padding:13px 16px;min-height:45px;gap:20px}.editorial-actions .quiet-link{font-size:9px;gap:20px;white-space:nowrap}.editorial-portrait{display:grid;grid-template-columns:135px 1fr;gap:0 23px;max-width:none;justify-self:stretch;border-top:1px solid var(--line);padding-top:24px;margin-top:1px;align-items:center}.image-index{grid-column:1/-1;margin-bottom:15px;font-size:6px;letter-spacing:.12em}.editorial-portrait-image{width:135px}.editorial-portrait-image img{aspect-ratio:1;object-position:50% 34%;filter:saturate(.9)}.editorial-portrait figcaption{border:0;padding:0;display:block}.editorial-portrait figcaption p{font-size:10px;line-height:1.9}.editorial-portrait figcaption a{padding:0;font-size:25px;display:inline-flex;margin-top:14px}.hero-facts{grid-column:auto;grid-template-columns:1fr auto;font-size:7px;gap:14px;padding-top:20px}.hero-facts>p:nth-child(2){display:none}.hero-facts>a{gap:18px}.hero-facts>a>span{font-size:15px}.curated-work{padding-top:43px;padding-bottom:45px}.curated-heading{display:block;margin-bottom:27px}.curated-heading h2{font-size:52px;line-height:1;margin-top:16px}.curated-heading>p{font-size:11px;line-height:1.9;margin-top:22px;padding:0}.curated-grid{grid-template-columns:1fr;gap:35px}.curated-image{padding:20px 20px 34px;aspect-ratio:1.3}.image-credit{left:20px;bottom:13px;font-size:6px}.curated-caption{padding-top:18px}.work-meta{font-size:7px;gap:6px}.curated-caption h3{font-size:43px;margin-top:11px}.software-project .curated-caption h3 a>span{font-size:24px;padding-top:10px}.curated-caption>p{font-size:12px;line-height:1.9;margin-top:13px}.research-art{aspect-ratio:1.12;padding:25px 25px 24px}.art-meta{flex-direction:row;justify-content:space-between;font-size:6px}.research-art>p{font-size:66px;line-height:.9;margin-top:22px;margin-bottom:24px}.art-bottom{font-size:6px;max-width:235px}.art-arrow{right:24px;bottom:20px;font-size:24px}.curated-caption h3.conference-feature-title{font-size:31px;line-height:1.25}.editorial-directory{padding-top:17px;padding-bottom:43px}.directory-heading{display:block;padding-top:29px;padding-bottom:26px}.directory-heading h2{font-size:46px;line-height:1.1;margin-top:17px}.directory-heading .eyebrow{font-size:8px}.directory-list>a{grid-template-columns:23px 1fr 27px;gap:15px;padding:23px 0}.directory-number{font-size:8px;align-self:start;padding-top:10px}.directory-list h3{font-size:38px;line-height:1.08;grid-column:2}.directory-list p{font-size:10px;line-height:1.9;grid-column:2;grid-row:2;margin-top:-3px}.directory-arrow{font-size:23px;grid-column:3;grid-row:1/3;align-self:center}.directory-list p br{display:none}.editorial-contact>.wrap{padding-top:38px;padding-bottom:29px}.editorial-contact-row{gap:20px;align-items:flex-end;margin-top:21px}.editorial-contact h2{font-size:51px;line-height:1.03;letter-spacing:-.03em}.contact-orbit{width:49px;height:49px;flex-shrink:0;font-size:25px;margin-bottom:5px}.editorial-contact-bottom{font-size:9px;line-height:1.9;flex-direction:column;gap:15px;margin-top:29px;padding-top:21px}.editorial-contact-bottom a:last-child{gap:22px}.page-hero{padding-top:34px;padding-bottom:32px}.page-hero h1{font-size:clamp(57px,15vw,78px);line-height:.99;margin-top:23px;letter-spacing:-.03em}.page-deck{font-size:13px;line-height:1.95;margin-top:24px;max-width:510px}.page-hero>.inline-link{font-size:10px;margin-top:20px}.page-main>.section{padding-top:31px;padding-bottom:42px}.page-main>.standalone-research{padding-top:0}.software-copy{padding:27px 23px}.software-copy h3{font-size:51px;margin-top:17px}.software-lead{font-size:26px;margin-top:11px}.status{font-size:8px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:13px;line-height:1.95}.software-copy .feature-list{display:block;font-size:10px;line-height:1.8;margin-top:21px;margin-bottom:25px}.feature-list li{border-bottom:1px solid #e0e5d6;padding-top:9px;padding-bottom:9px}.software-copy .button{font-size:10px;padding:14px 19px;min-height:46px}.product-footnote{font-size:8px;margin-top:16px}.software-visual{padding:22px 15px}.software-visual figcaption{font-size:6px;margin-top:13px;line-height:1.7}.software-secondary{grid-template-columns:1fr;gap:22px;padding-top:26px;margin-top:30px}.software-secondary figure{height:auto;aspect-ratio:1.8}.software-secondary h3{font-size:40px;line-height:1.1}.software-secondary p:not(.eyebrow){font-size:12px;line-height:1.95}.software-secondary .eyebrow{font-size:7px}.github-projects{padding-bottom:44px}.github-section-heading{gap:21px;margin-bottom:25px}.github-section-heading h2{font-size:42px;line-height:1.1}.repository-list article{grid-template-columns:21px 1fr;gap:17px;padding:26px 0}.repo-index{font-size:8px;padding-top:3px}.repository-list .eyebrow{font-size:7px;line-height:1.9}.repository-list h3{font-size:33px;line-height:1.15;margin-top:12px}.repository-list article>div>p:not(.eyebrow){font-size:12px;line-height:1.95;margin-top:15px}.repository-list .tags span{font-size:8px}.repo-note{font-size:9px;line-height:1.9}.research-row{grid-template-columns:1fr;gap:20px;padding-top:28px;padding-bottom:29px}.research-marker{grid-column:auto;display:grid;grid-template-columns:22px 1fr;gap:8px 14px;align-items:baseline}.research-marker>span{font-size:8px}.research-marker>p:not(.research-professor){font-size:29px;margin:0}.research-marker small{font-size:8px;grid-column:2;margin:0}.research-marker .research-professor{font-size:11px;grid-column:2;margin-top:0;line-height:1.8}.research-row .round-link{display:none}.research-method{font-size:7px;letter-spacing:.1em;line-height:1.8;margin-bottom:13px}.research-content h3{font-size:35px;line-height:1.13;letter-spacing:-.015em}.research-content>p:not(.research-method){font-size:12px;line-height:1.95;margin-top:18px}.research-content .conference-inline{font-size:9px!important}.experience-intro{display:grid;grid-template-columns:1fr;gap:22px;padding-bottom:29px;margin-bottom:28px}.experience-intro h3{font-size:43px;line-height:1.05;margin-top:15px}.experience-intro h3 span{font-size:10px;line-height:1.9;margin-top:15px}.experience-intro>p{font-size:13px;line-height:1.95}.experience-collections{grid-template-columns:1fr;gap:32px;margin-top:0}.photo-cover{aspect-ratio:1.4}.experience-card-copy{padding-top:18px}.experience-card-copy .eyebrow{font-size:7px}.experience-card-copy h3{font-size:36px;line-height:1.08;margin-top:10px}.experience-card-copy>p:not(.eyebrow){font-size:12px;line-height:1.9;margin-top:12px}.service-note{grid-template-columns:1fr;gap:21px;margin-top:30px;padding:24px 0}.service-note strong{font-size:10px;line-height:1.9}.service-note p>span{font-size:10px;line-height:1.95}.service-note>.eyebrow{font-size:7px}.video-heading{display:block;margin-top:34px;margin-bottom:23px}.video-heading h3{font-size:39px;line-height:1.1}.video-heading p{font-size:10px;line-height:1.9;margin-top:15px}.video-grid{grid-template-columns:1fr;gap:29px}.video-project h4{font-size:30px;line-height:1.1}.video-project p{font-size:10px;margin-top:8px}.video-project figcaption>span{font-size:7px;padding:5px 7px}.conference-feature{grid-template-columns:1fr;padding-top:33px;padding-bottom:44px;gap:27px}.conference-feature h2,.conference-recognition h2{font-size:45px;line-height:1.03;margin-top:18px}.conference-label{font-size:9px;line-height:1.9}.conference-feature h3{font-size:35px;line-height:1.17;margin-top:16px}.conference-feature article>p:last-of-type{font-size:12px;line-height:1.95;margin-top:19px}.recognition-layout{grid-template-columns:1fr;gap:28px}.recognition-subtitle{font-size:44px;line-height:1.03;margin-bottom:23px}.recognition-intro{font-size:12px;line-height:1.95;max-width:440px}.award{grid-template-columns:49px minmax(0,1fr);gap:17px;padding:25px 0}.award h3{font-size:32px;line-height:1.16}.award-year{font-size:8px;line-height:1.9;padding-top:8px}.award p{font-size:10px;line-height:1.95;margin-top:12px}.award-type{display:none}.programs{margin-top:30px}.programs>p:not(.eyebrow){grid-template-columns:1fr;gap:5px;font-size:11px;line-height:1.9;margin-top:19px}.programs>.eyebrow{font-size:7px}.conference-recognition{grid-template-columns:1fr;padding-top:32px;padding-bottom:43px;gap:28px}.conference-recognition article{grid-template-columns:1fr;gap:17px}.large-year{font-size:9px;padding-top:0}.conference-recognition h3{font-size:37px;line-height:1.12}.conference-recognition article p{font-size:14px;line-height:1.95;margin-top:19px}.about-section{grid-template-columns:1fr;gap:35px}.about-lead{font-size:37px;line-height:1.2}.about-section>div>p:not(.about-lead){font-size:13px;line-height:2;margin-top:24px}.about-details{padding-top:26px}.education-block h3{font-size:35px;line-height:1.1;margin-top:17px}.education-block>p:not(.eyebrow){font-size:12px;line-height:1.9}.focus-block{padding-top:25px;margin-top:27px}.focus-block .tags span{font-size:9px}.learning-details summary{font-size:11px;padding-top:19px;padding-bottom:19px}.learning-details li{font-size:11px;line-height:1.8}.learning-details li span{font-size:9px;line-height:1.9}.contact-inner{padding-top:41px;padding-bottom:41px;gap:33px}.contact-inner .eyebrow{font-size:7px;line-height:1.9}.contact-inner h2{font-size:73px;line-height:1;margin-top:23px}.contact-inner p:not(.eyebrow){font-size:12px;line-height:1.9;margin-top:23px}.email-link{font-size:34px;line-height:1.2;gap:20px;margin-top:25px}.resource-links>a,.resource-links>button{font-size:12px;padding:20px 0}.resource-links small{font-size:8px;line-height:1.9;margin-top:6px}.chapter-next{padding-top:29px;padding-bottom:31px;gap:22px;align-items:flex-end}.chapter-next>span{font-size:6px;letter-spacing:.1em;max-width:75px;line-height:1.9}.chapter-next>a{font-size:34px;gap:25px;line-height:1.1}.chapter-next>a>span{font-size:23px}.paper-main{padding-top:25px;padding-bottom:31px}.back-link{font-size:9px}.paper-hero{padding-top:28px;padding-bottom:30px}.paper-hero h1{font-size:44px;line-height:1.06;letter-spacing:-.015em;margin-top:23px;margin-bottom:25px}.paper-hero>.eyebrow{font-size:7px;line-height:1.9;letter-spacing:.11em}.paper-author,.paper-instructor{font-size:10px;line-height:1.95}.paper-instructor{margin-top:8px}.paper-actions{margin-top:25px;gap:11px}.paper-actions .button{font-size:10px;min-height:46px}.paper-layout{padding-top:34px;gap:21px;grid-template-columns:1fr}.paper-body>section{margin-bottom:36px}.paper-body h2{font-size:36px;line-height:1.1;margin-top:16px}.paper-body .eyebrow{font-size:7px}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:13px;line-height:2}.paper-body .paper-abstract{font-size:14px!important;line-height:2!important}.paper-sidebar{padding:24px 22px}.paper-sidebar dd{font-size:10px;line-height:1.95}.paper-sidebar dt{font-size:7px}.paper-sidebar dl{gap:0 20px}.paper-downloads{display:block}.paper-downloads a{font-size:10px}.paper-sidebar>.small-muted{font-size:9px!important;line-height:2}.paper-next{font-size:9px;gap:19px;line-height:1.9}.conference-callout{padding:24px 23px;margin-top:25px}.conference-callout>.eyebrow{font-size:7px;line-height:1.95}.conference-callout h2{font-size:32px;line-height:1.16;margin-top:17px}.conference-callout>p:last-child{font-size:9px;line-height:1.9;margin-top:16px}.model-diagram,.theme-diagram{padding:22px}.model-diagram p,.theme-diagram p{font-size:25px!important;line-height:1.1!important}.model-diagram small{font-size:7px;line-height:1.9}.theme-diagram>div{font-size:8px;gap:12px}.diagram-caption{font-size:7px;line-height:1.9;margin-top:11px}.findings{padding-left:17px}.findings li{padding-left:7px;margin-bottom:17px}.gallery-intro{padding-top:35px;padding-bottom:29px}.gallery-intro h1{font-size:60px;line-height:1;letter-spacing:-.025em;margin-top:19px}.gallery-lead{font-size:30px;line-height:1.25;max-width:490px;margin-top:24px}.gallery-context{font-size:12px;line-height:2;margin-top:21px}.collection-nav{font-size:9px;gap:22px;margin-top:24px}.collection-nav a{padding-top:13px;padding-bottom:13px}.photo-gallery{gap:32px;padding-bottom:33px}.photo-gallery .enlarge{opacity:1;transform:none;font-size:8px;padding:9px 11px;right:11px;bottom:11px}.gallery-item h2{font-size:34px;line-height:1.08}.photo-gallery figcaption{padding-top:17px}.gallery-item figcaption p{font-size:11px;line-height:1.95;margin-top:12px}.gallery-end{font-size:9px;line-height:1.9;padding-bottom:32px;gap:22px}.video-section h2{font-size:43px}.back-to-top{right:max(17px,env(safe-area-inset-right));bottom:max(17px,env(safe-area-inset-bottom));width:50px;height:50px}.top-progress{width:50px;height:50px;inset:-1px}.top-arrow{width:18px;height:18px}}
@media(max-width:370px){.wrap,.section-wrap,.portfolio-header{padding-left:22px;padding-right:22px}.brand-sub{font-size:4px}.editorial-hero-copy h1{font-size:clamp(93px,28.5vw,108px)}.editorial-actions{gap:17px}.editorial-actions .button{font-size:9px;gap:15px;padding-left:14px;padding-right:14px}.editorial-actions .quiet-link{font-size:8px;gap:17px}.editorial-portrait{grid-template-columns:115px 1fr;gap:0 21px}.editorial-portrait-image{width:115px}.editorial-portrait figcaption p{font-size:9px}.editorial-contact h2{font-size:44px}.editorial-contact-row{gap:12px}.contact-orbit{width:43px;height:43px;font-size:23px}.research-art>p{font-size:59px}.research-art{padding:23px}.art-bottom{font-size:5px;max-width:190px}.email-link{font-size:29px;gap:17px}.directory-list h3{font-size:35px}.page-hero h1{font-size:55px}.research-content h3{font-size:33px}.paper-hero h1{font-size:41px}.chapter-next>a{font-size:31px;gap:18px}.portfolio-footer{padding-left:22px}.portfolio-footer nav{gap:16px;font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the fine visual scale without shrinking meaningful information. */
.brand{min-height:44px}.portfolio-header nav{font-size:12px}.portfolio-header nav a{min-height:44px;display:inline-flex;align-items:center}.page-deck{font-size:16px}.curated-heading>p,.curated-caption>p{font-size:14px}.work-meta{font-size:9px}.directory-list p{font-size:12px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote),.software-secondary p:not(.eyebrow),.repository-list article>div>p:not(.eyebrow),.research-content>p:not(.research-method),.experience-card-copy>p:not(.eyebrow),.conference-feature article>p:last-of-type,.recognition-intro,.about-section>div>p:not(.about-lead),.gallery-context{font-size:14px}.feature-list{font-size:12px}.research-marker small{font-size:11px}.research-marker .research-professor{font-size:12px}.award p{font-size:13px}.award-year{font-size:11px}.programs>p:not(.eyebrow){font-size:12px}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:15px;max-width:68ch}.paper-sidebar dd{font-size:12px}.paper-author,.paper-instructor{font-size:12px}.education-block>p:not(.eyebrow){font-size:14px}.quiet-link,.editorial-portrait figcaption a{min-height:44px}.editorial-portrait figcaption a{min-width:44px;display:grid;place-items:center}.menu-toggle{min-height:44px;min-width:66px}.portfolio-footer nav a{min-height:44px}.learning-details li{font-size:12px}.gallery-item figcaption p{font-size:12px}.service-note strong,.service-note p>span{font-size:12px}
@media(max-width:640px){.brand{font-size:12px}.brand-sub{font-size:6px}.portfolio-header nav{font-size:13px}.portfolio-header nav a{min-height:44px}.page-deck{font-size:15px}.curated-heading>p{font-size:13px}.curated-caption>p,.directory-list p{font-size:13px}.directory-list p{line-height:1.8}.work-meta{font-size:9px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote),.software-secondary p:not(.eyebrow),.repository-list article>div>p:not(.eyebrow),.research-content>p:not(.research-method),.experience-intro>p,.experience-card-copy>p:not(.eyebrow),.conference-feature article>p:last-of-type,.recognition-intro,.about-section>div>p:not(.about-lead),.gallery-context{font-size:14px}.feature-list{font-size:12px}.research-marker small{font-size:11px}.research-marker .research-professor{font-size:12px}.research-content .conference-inline{font-size:11px!important}.award p{font-size:12px}.award-year{font-size:11px}.programs>p:not(.eyebrow){font-size:12px}.education-block>p:not(.eyebrow){font-size:14px}.paper-author,.paper-instructor{font-size:12px}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:14px}.paper-body .paper-abstract{font-size:15px!important}.paper-sidebar dd{font-size:12px}.paper-downloads a{font-size:11px}.paper-sidebar>.small-muted{font-size:10px!important}.gallery-item figcaption p{font-size:13px}.learning-details li{font-size:12px}.learning-details li span{font-size:11px}.service-note strong,.service-note p>span{font-size:12px}.video-project p{font-size:12px}.photo-nav,.icon-button{min-width:44px;min-height:44px}.editorial-portrait figcaption p{font-size:11px}.portfolio-footer nav{font-size:10px}.collection-nav a{min-height:44px}.editorial-contact-bottom{font-size:11px}.editorial-contact-bottom a{min-height:44px;display:flex;align-items:center}.editorial-actions .quiet-link{font-size:10px}.chapter-next>span{font-size:8px;max-width:100px}.chapter-next>a{font-size:32px}}
@media(max-width:370px){.brand-sub{font-size:5px}.editorial-actions{gap:15px}.editorial-actions .quiet-link{font-size:9px;gap:16px}.editorial-portrait figcaption p{font-size:10px}.portfolio-header nav{font-size:13px}}

/* Original portfolio atmosphere: graphite, ambient light, and real work. */
:root{color-scheme:dark;--ink:#f4f3f8;--muted:#b0b0c3;--green:#bec6ff;--brass:#a8dce7;--cream:#101017;--white:#191923;--paper:#181821;--line:#ffffff20;--accent:#c6c6ff;--sage:#232330;--blue:#bdcaff;--navy:#e3e6ff}
html{scroll-padding-top:110px}body{background:#101017;color:var(--ink);isolation:isolate}body:before{content:'';position:absolute;z-index:-1;top:0;left:0;right:0;height:1450px;pointer-events:none;background:radial-gradient(ellipse at 78% 28%,#6156c32a,transparent 52%),radial-gradient(ellipse at 15% 60%,#16445735,transparent 52%)}body:after{content:'';position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.027;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.75' filter='url(%23n)'/%3E%3C/svg%3E")}
::selection{background:#b5b6f9;color:#171725}h1,h2,h3,h4{color:var(--ink)}em{font-family:var(--serif);font-weight:400}.wrap,.section-wrap{max-width:1380px;padding-left:64px;padding-right:64px}.eyebrow{font-size:11px;letter-spacing:.14em;line-height:1.8;color:#b5b4d3}p{overflow-wrap:break-word}a:hover{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portfolio-header{max-width:1600px;padding:20px 64px;gap:25px;background:#101017c9;border-color:var(--line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.brand{font-size:14px;letter-spacing:-.02em}.brand-mark{background:linear-gradient(135deg,#ffffff12,#9a96ed12);border-color:#ffffff38;color:#e8e6ff;font-family:var(--sans);font-size:16px;letter-spacing:-.07em;border-radius:13px}.brand-sub{color:#9c9bad;font-size:8px;letter-spacing:.06em}.portfolio-header nav{font-size:12px;gap:25px;color:#c1c0cc}.portfolio-header nav a{min-height:44px}.portfolio-header nav a:hover,.portfolio-header nav a[aria-current="page"]{color:#efefff}.portfolio-header nav a:after{background:#b5b8fd}.github-nav{border-color:#ffffff29}.menu-toggle{color:var(--ink);background:#ffffff09;border-color:#ffffff29;border-radius:8px;font-size:12px;min-height:44px}.skip-link{background:#29283b;color:#fff;z-index:100}
.button{border-radius:100px;font-size:12px;line-height:1.6;padding:14px 23px;min-height:50px;gap:27px;font-weight:600}.button.primary{background:#d3d2ff;color:#1a1932;border-color:#d3d2ff;box-shadow:0 0 24px #acaaff15}.button.primary:hover{background:#e5e4ff;color:#15142c;border-color:#e5e4ff;box-shadow:0 0 30px #b3b0ff30}.button.outline{color:#eeedfa;border-color:#ffffff39;background:#ffffff04}.button.outline:hover{color:#fff;background:#ffffff0d;border-color:#c4c1ff80}.quiet-link,.inline-link{font-size:12px;color:#d5d4e9;border-color:#ffffff40;min-height:44px}.quiet-link:hover,.inline-link:hover{color:#fff;border-color:#b4b1e8}.tags span,.focus-block .tags span{border:1px solid #ffffff16;background:#ffffff05;color:#bdbccf;border-radius:100px;font-size:10px;line-height:1.5;padding:6px 11px}.small-muted{color:var(--muted);font-size:12px!important}
/* Opening: a broad, atmospheric introduction and layered media. */
.motion-hero{position:relative;text-align:center;padding-top:58px;padding-bottom:47px}.hero-identity{display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;color:#b7b5ca;letter-spacing:.025em}.hero-identity img{width:30px;height:30px;object-fit:cover;border:1px solid #a9a5c84a;border-radius:50%}.identity-divider{color:#6b6882;margin:0 8px}.motion-hero h1{font-family:var(--sans);font-size:clamp(66px,8.5vw,122px);font-weight:450;line-height:1.02;letter-spacing:-.065em;margin:22px 0 20px}.motion-hero h1 em{font-size:1.12em;letter-spacing:-.045em;background:linear-gradient(110deg,#f6f1ff,#b1b5e6 70%);background-clip:text;-webkit-background-clip:text;color:transparent}.motion-intro{font-size:15px;line-height:1.9;color:#a9a7be;letter-spacing:-.01em}.motion-actions{display:flex;justify-content:center;align-items:center;gap:27px;margin-top:27px}.hero-orbit{position:absolute;border:1px solid #ffffff08;pointer-events:none;border-radius:50%;z-index:-1;transform:rotate(-18deg)}.orbit-one{width:700px;height:290px;left:calc(50% - 350px);top:66px}.orbit-two{width:910px;height:340px;left:calc(50% - 455px);top:33px}
.showcase{overflow:hidden;padding:14px 0 29px;position:relative}.showcase:before{content:'';position:absolute;width:70%;height:60%;left:15%;top:8%;background:#7775c621;filter:blur(80px);border-radius:50%;z-index:-1}.showcase-stage{position:relative;isolation:isolate;margin:auto;width:min(74vw,1010px);aspect-ratio:1.93}.showcase-slide{position:absolute;inset:0;overflow:hidden;background:#1d1c29;border:1px solid #ffffff2a;border-radius:17px;box-shadow:0 25px 80px #0005;transform:translateX(0) scale(1);transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .7s,filter .7s;z-index:3;opacity:1}.showcase-slide.is-before{transform:translateX(-77%) scale(.82) rotate(-4deg);opacity:.23;filter:saturate(.4);z-index:1;pointer-events:none}.showcase-slide.is-after{transform:translateX(77%) scale(.82) rotate(4deg);opacity:.23;filter:saturate(.4);z-index:1;pointer-events:none}.showcase-top{height:44px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:0 19px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#b9b6cf;background:#1b1a26}.showcase-top>span:first-child{display:flex;align-items:center;gap:8px}.showcase-top i,.case-chip i{width:5px;height:5px;border-radius:50%;background:#c0bdf5;box-shadow:0 0 10px #b9afff;display:inline-block}.showcase-image{display:block;position:relative;height:calc(100% - 44px);overflow:hidden}.showcase-image img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}.screenshot-slide{background:linear-gradient(140deg,#273539,#262740);padding:24px 28px 43px}.screenshot-slide img{object-fit:contain;filter:none;border-radius:5px}.showcase-caption{position:absolute;inset:auto 0 0;padding:47px 25px 21px;background:linear-gradient(transparent,#101019da);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:15px;font-weight:500;color:#fff}.showcase-caption>span:last-child{font-size:24px;font-weight:300}.showcase-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:27px;max-width:1140px}.showcase-controls>p{font-size:10px;letter-spacing:.02em;color:#8f8caa}.showcase-select{display:flex;gap:5px;background:#ffffff04;border:1px solid #ffffff14;border-radius:50px;padding:4px}.showcase-select button{border:0;color:#9793b1;background:transparent;border-radius:30px;min-height:44px;font-size:11px;padding:9px 17px;cursor:pointer}.showcase-select button[aria-pressed="true"]{color:#ece9ff;background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff10}.showcase-arrows{display:flex;gap:8px}.showcase-arrows button{border:1px solid #ffffff28;background:#ffffff03;color:#dad6ed;min-width:44px;min-height:44px;border-radius:50%;font-size:18px;cursor:pointer}.showcase-arrows button:hover{background:#ffffff14}.field-ribbon{border-top:1px solid #ffffff13;border-bottom:1px solid #ffffff13;overflow:hidden;margin-top:33px;padding:28px 0;background:#ffffff01}.ribbon-track{display:flex;align-items:center;gap:38px;width:max-content;animation:field-drift 60s linear infinite}.ribbon-track span{font-size:23px;letter-spacing:-.035em;color:#9692b1}.ribbon-track i{font-size:27px;color:#4d485f;font-style:normal}.field-ribbon:hover .ribbon-track{animation-play-state:paused}@keyframes field-drift{to{transform:translateX(-50%)}}
/* The work reads as stories, with room for the actual media. */
.motion-work{padding-top:109px;padding-bottom:70px}.motion-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:45px}.motion-heading h2{font-family:var(--sans);font-weight:450;font-size:clamp(35px,4.1vw,59px);line-height:1.13;letter-spacing:-.05em;margin-top:15px}.motion-heading h2 em{font-size:1.15em;color:#c1beda}.motion-heading>p{font-size:13px;line-height:1.9;color:#8f8ba6;padding-bottom:7px}.case-row{display:grid;grid-template-columns:1.14fr .86fr;gap:75px;align-items:center;margin-top:50px;margin-bottom:70px}.case-image{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;border:1px solid #ffffff25;border-radius:16px;min-width:0;aspect-ratio:1.26;transition:transform .5s,border-color .4s;box-shadow:0 14px 45px #0002}.case-image:hover{transform:translateY(-4px);border-color:#c0bcff6b}.software-case{background:radial-gradient(ellipse at 50% 80%,#597f814a,transparent 65%),linear-gradient(135deg,#202c33,#252238);padding:75px 27px}.software-case img{width:100%;height:auto;border-radius:5px;box-shadow:0 20px 40px #0003;transform:rotate(-2deg);transition:transform .6s}.software-case:hover img{transform:rotate(0) scale(1.015)}.case-chip{position:absolute;top:24px;left:25px;display:inline-flex;align-items:center;gap:9px;color:#c7c6d7;background:#16162190;border:1px solid #ffffff16;border-radius:40px;padding:6px 11px;font-size:9px;letter-spacing:.03em}.case-image-caption{position:absolute;left:26px;bottom:23px;color:#b3afc9;font-size:9px;letter-spacing:.02em;line-height:1.7}.case-copy{min-width:0}.case-number{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8f8aa7;display:block;margin-bottom:24px}.case-copy h3{font-family:var(--sans);font-size:clamp(30px,3.3vw,46px);font-weight:450;line-height:1.15;letter-spacing:-.05em}.case-copy .case-lead{font-family:var(--serif);font-size:26px;line-height:1.3;color:#c6c0d9;margin-top:12px}.case-copy>p:not(.case-lead){font-size:14px;line-height:1.9;color:#a6a1bb;max-width:440px;margin-top:22px}.case-copy .button{margin-top:29px}.case-copy .tags{margin-top:22px}.case-reverse{grid-template-columns:.86fr 1.14fr}.case-reverse .case-image{order:2}.case-reverse .case-copy{order:1}.economics-case{background:radial-gradient(ellipse at 80% 30%,#6d55984d,transparent 67%),linear-gradient(145deg,#2d253c,#1e2634);padding:78px 40px}.economics-case>p{font-family:var(--sans);font-size:clamp(35px,3.8vw,52px);line-height:1.14;letter-spacing:-.055em;font-weight:450;color:#f1edf9}.economics-case>p em{color:#c5bddb;display:inline-block;font-size:1.15em;letter-spacing:-.03em}.economics-orbits{position:absolute;inset:0;z-index:-1;opacity:.4}.economics-orbits i{position:absolute;width:78%;height:70%;border:1px solid #a8a1c33d;border-radius:50%;right:-35%;top:40%;transform:rotate(-25deg)}.economics-orbits i:nth-child(2){width:100%;height:90%;right:-43%;top:30%}.economics-orbits i:nth-child(3){width:120%;height:110%;right:-50%;top:20%}.case-corner{position:absolute;bottom:21px;right:24px;font-size:26px;color:#ccc4e4}.case-copy p.case-conference{font-size:12px;color:#c8bedf}.case-copy p.case-faculty{font-size:11px;color:#8d879f;margin-top:10px}
/* Skill imagery is illustrative; each card links to the evidence. */
.home-skills{padding-top:39px;padding-bottom:92px}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.skill-scene{border:1px solid #ffffff18;border-radius:15px;overflow:hidden;background:linear-gradient(135deg,#ffffff04,#ffffff01);transition:transform .4s,border-color .4s;min-width:0}.skill-scene:hover{transform:translateY(-5px);border-color:#c2bdff50}.skill-picture{display:block;position:relative;aspect-ratio:1.22;background-image:url('assets/skill-scenes.png');background-size:300% auto;background-position:var(--scene-position);overflow:hidden;border-bottom:1px solid #ffffff15}.skill-picture:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#10101746);pointer-events:none}.scene-no{position:absolute;left:17px;top:17px;z-index:1;display:grid;place-items:center;width:29px;height:29px;border:1px solid #ffffff24;border-radius:50%;background:#13132080;font-size:9px;color:#c8c2df}.scene-arrow{position:absolute;right:17px;bottom:17px;width:35px;height:35px;display:grid;place-items:center;color:#e2dbff;background:#161323aa;backdrop-filter:blur(10px);border:1px solid #ffffff2a;border-radius:50%;font-size:18px;z-index:1}.skill-caption{padding:27px 25px 24px}.skill-caption .eyebrow{font-size:9px;color:#928ba8;margin-bottom:11px}.skill-caption h3{font-family:var(--sans);font-size:22px;line-height:1.35;letter-spacing:-.035em;font-weight:500}.skill-caption>p:not(.eyebrow){font-size:13px;line-height:1.85;color:#9e98b2;margin-top:15px}.skill-caption .inline-link{font-size:10px;gap:12px;margin-top:22px;line-height:1.8}.illustration-note{font-size:10px;line-height:1.9;color:#827c96;margin-top:23px;max-width:650px}.skills-section{padding-top:20px;padding-bottom:77px}.skills-section .skill-grid{row-gap:37px}.skills-practice{display:grid;grid-template-columns:1fr 1fr;gap:90px;border-top:1px solid var(--line);padding-top:54px;padding-bottom:70px}.skills-practice h2{font-family:var(--sans);font-size:43px;letter-spacing:-.04em;font-weight:450;line-height:1.15}.skills-practice h2 em{font-size:1.1em;color:#c6bed9}.skills-practice>div>p:not(.eyebrow){font-size:15px;line-height:2;color:var(--muted)}.skills-practice-links{display:flex;gap:13px 27px;flex-wrap:wrap;margin-top:16px}
.motion-directory{padding-top:30px;padding-bottom:115px}.motion-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.motion-directory-grid>a{display:block;position:relative;min-height:302px;padding:29px;border:1px solid #ffffff1d;border-radius:14px;background:radial-gradient(ellipse at 100% 0,#5a4c7c19,transparent 75%);transition:background .35s,border-color .35s}.motion-directory-grid>a:hover{border-color:#bdb3ff55;background:#73609b12}.motion-directory-grid>a>span:first-child{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#8d829e}.motion-directory-grid h3{font-family:var(--sans);font-size:25px;line-height:1.35;letter-spacing:-.04em;font-weight:450;margin-top:33px}.motion-directory-grid p{font-size:12px;line-height:1.9;color:#a197b1;margin-top:17px;max-width:290px;padding-bottom:32px}.motion-directory-grid .directory-arrow{position:absolute;right:27px;bottom:21px;color:#b3a8cb;font-size:24px}.motion-contact{position:relative;border-top:1px solid #ffffff1a;background:radial-gradient(ellipse at 50% 130%,#7260923b,transparent 75%),#15131d;text-align:center;padding:79px 0 85px}.motion-contact h2{font-family:var(--sans);font-size:clamp(50px,6.4vw,86px);font-weight:450;line-height:1.08;letter-spacing:-.055em;margin-top:22px}.motion-contact h2 em{color:#c9bcdf;font-size:1.15em;letter-spacing:-.04em}.motion-contact-links{display:flex;justify-content:center;align-items:center;gap:27px;margin-top:32px}
/* Consistent interior pages, with comfortable reading panels. */
.page-hero{padding-top:70px;padding-bottom:51px}.page-hero h1{font-family:var(--sans);font-weight:450;font-size:clamp(52px,6.7vw,91px);line-height:1.05;letter-spacing:-.055em}.page-hero h1 em{font-family:var(--serif);color:#c7bedb;font-size:1.1em;letter-spacing:-.04em}.page-deck{font-size:16px;line-height:1.9;color:var(--muted);max-width:650px}.page-main>.section{padding-top:29px;padding-bottom:65px}.software-feature{background:linear-gradient(130deg,#1d1c2a,#1a1e2a);border:1px solid #ffffff20;border-radius:17px;overflow:hidden}.software-copy{padding:44px 37px}.software-copy h3{font-family:var(--sans);font-size:43px;font-weight:450;letter-spacing:-.045em}.software-lead{font-size:27px;color:#c6bfde}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:15px;line-height:1.9}.status{font-size:11px;color:#b7d0cd}.status-dot{background:#a7c9c2}.feature-list{font-size:13px;color:#b8b3cb;line-height:1.8}.feature-list li{border-color:#ffffff17}.feature-list li:before{color:#a8c9d3}.software-visual{background:radial-gradient(ellipse at 50% 80%,#40737830,transparent 70%),#1b232f;padding:36px 26px}.software-visual a{border:1px solid #ffffff24;border-radius:7px;overflow:hidden}.software-visual figcaption{font-size:10px;color:#a6b6c3;line-height:1.8}.product-footnote{font-size:10px;color:#9994ac}.github-projects{padding-top:14px;padding-bottom:75px}.github-section-heading h2{font-family:var(--sans);font-size:38px;font-weight:450;letter-spacing:-.045em}.repository-list article{border-color:var(--line);padding-top:35px;padding-bottom:35px}.repository-list h3{font-family:var(--sans);font-size:30px;letter-spacing:-.04em;font-weight:450}.repository-list article>div>p:not(.eyebrow){font-size:15px}.repo-index,.repo-note{color:#9a91ae;font-size:11px}.repository-list .eyebrow{font-size:10px}.repo-note a{color:#c6bddb}.research-row,.research-row:last-child{border-color:var(--line);padding-top:40px;padding-bottom:40px}.research-marker>span{font-size:11px;color:#8d87a3}.research-marker>p:not(.research-professor){font-family:var(--sans);font-size:22px;font-weight:500;letter-spacing:-.02em}.research-marker small{font-size:11px;color:#8d87a3}.research-marker .research-professor{font-size:12px;line-height:1.9;color:#b9b2ca}.research-method{font-size:10px;color:#a098b6;line-height:1.8}.research-content h3{font-family:var(--sans);font-size:30px;font-weight:450;line-height:1.35;letter-spacing:-.035em}.research-content>p:not(.research-method){font-size:15px;line-height:1.9}.research-content .conference-inline{color:#bcb0d7!important;font-size:12px!important}.round-link{color:#c2b4df;border-color:#ffffff30;min-width:44px;min-height:44px}.round-link:hover{background:#30243d;color:#fff;border-color:#c2b4df}.experience-intro h3{font-family:var(--sans);font-size:38px;font-weight:450;letter-spacing:-.04em}.experience-intro h3 span{font-size:12px;color:var(--muted)}.experience-intro>p{font-size:15px;line-height:2}.photo-cover{border-radius:12px;border:1px solid #ffffff20}.photo-cover img{filter:saturate(.9)}.experience-card-copy .eyebrow{font-size:10px}.experience-card-copy h3{font-family:var(--sans);font-size:26px;letter-spacing:-.04em;font-weight:450}.experience-card-copy>p:not(.eyebrow){font-size:14px}.service-note{border-color:var(--line)}.service-note .eyebrow{font-size:10px}.service-note strong,.service-note p>span{font-size:13px;color:#b6acc5;line-height:1.9}.video-heading{scroll-margin-top:120px}.video-heading h3{font-family:var(--sans);font-size:37px;font-weight:450;letter-spacing:-.04em}.video-heading p{font-size:13px}.video-project video{border-radius:12px;border:1px solid #ffffff22}.video-project h4{font-family:var(--sans);font-size:24px;font-weight:450;letter-spacing:-.035em}.video-project p{font-size:12px;color:#a79ab8}.video-project figcaption>span{font-size:10px;color:#b1a3c2;border-color:#ffffff25;border-radius:100px;white-space:nowrap;align-self:flex-start}.conference-feature{border-color:var(--line)}.conference-feature h2,.conference-recognition h2{font-family:var(--sans);font-size:38px;font-weight:450;letter-spacing:-.04em;line-height:1.15}.conference-label{color:#bdaed3;font-size:12px}.conference-feature h3,.conference-recognition h3{font-family:var(--sans);font-size:30px;font-weight:450;letter-spacing:-.035em;line-height:1.4}.conference-feature article>p:last-of-type{font-size:15px}.recognition-section{background:transparent}.recognition-subtitle{font-family:var(--sans);font-size:36px;line-height:1.2;letter-spacing:-.04em;font-weight:450}.recognition-intro{font-size:14px}.award,.award:first-child{border-color:var(--line)}.award h3{font-family:var(--sans);font-size:26px;font-weight:450;letter-spacing:-.03em}.award p{font-size:13px;line-height:1.85;color:var(--muted)}.award-year,.award-type{font-size:10px;color:#a395ba}.programs{border-color:var(--line)}.programs>.eyebrow{font-size:10px}.programs>p:not(.eyebrow){font-size:13px}.programs p>span{color:#a49ab3}.large-year{font-size:12px;color:#ad9ac2}.conference-recognition article p{font-size:16px}.about-lead{font-family:var(--sans);font-size:33px;font-weight:450;letter-spacing:-.04em;line-height:1.4}.about-section>div>p:not(.about-lead){font-size:16px;line-height:2}.education-block h3{font-family:var(--sans);font-size:29px;line-height:1.3;letter-spacing:-.04em;font-weight:450}.education-block>p:not(.eyebrow){font-size:15px}.focus-block,.learning-details{border-color:var(--line)}.learning-details summary{font-size:14px;min-height:54px}.learning-details li{font-size:13px;border-color:#ffffff18}.learning-details li span{font-size:12px;color:#9d91b0;line-height:2}.contact-section{background:radial-gradient(ellipse at 0 70%,#5e438b25,transparent 70%),#19151f;color:var(--ink);border-top:1px solid #ffffff15}.contact-inner{padding-top:68px;padding-bottom:68px}.contact-inner h2{font-family:var(--sans);font-size:64px;font-weight:450;letter-spacing:-.06em}.contact-inner .eyebrow{font-size:10px;color:#ae9cc3}.contact-inner p:not(.eyebrow){font-size:15px;color:var(--muted)}.email-link{font-family:var(--sans);font-size:26px;color:#d7cce6;letter-spacing:-.035em;overflow-wrap:anywhere}.resource-links>a,.resource-links>button{font-size:15px;color:#d3c6e2;border-color:#ffffff25}.resource-links>a:last-child,.resource-links>button:last-child{border-color:#ffffff25}.resource-links small{font-size:11px;color:#a392b5}.chapter-next{border-color:var(--line);padding-top:40px;padding-bottom:44px}.chapter-next>span{font-size:10px;color:#93849f}.chapter-next>a{font-family:var(--sans);font-size:33px;font-weight:450;letter-spacing:-.04em}
/* Scholarship photographs retain their original pixels and open at full size. */
.baftx-feature{padding-top:20px;padding-bottom:67px;scroll-margin-top:112px}.baftx-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:32px}.baftx-heading h2{font-family:var(--sans);font-size:49px;font-weight:450;letter-spacing:-.045em;line-height:1.2}.baftx-heading h2 em{font-size:1.1em;color:#d4c3a7}.baftx-heading>p{font-size:14px;line-height:1.9;color:#b1a0b6}.baftx-gallery{display:grid;grid-template-columns:1.62fr .7fr;gap:25px;align-items:start}.baftx-gallery .photo-button{border-radius:13px;border:1px solid #ffffff2b;background:#1e1b25;overflow:hidden}.baftx-main img{width:100%;aspect-ratio:1.5;object-fit:cover}.baftx-certificate .photo-button{aspect-ratio:1.01;background:#211d29}.baftx-certificate img{width:100%;height:100%;object-fit:cover;object-position:center}.baftx-gallery figcaption{padding-top:15px;font-size:12px;color:#ad9db8;line-height:1.9}.baftx-gallery .enlarge{font-size:10px;border:1px solid #ffffff24;background:#191521d9;color:#f2e9ff;border-radius:50px;backdrop-filter:blur(10px)}
/* Research pages and photo collections share the same calm reading system. */
.paper-hero h1{font-family:var(--sans);font-size:clamp(32px,4vw,56px);line-height:1.18;letter-spacing:-.05em;font-weight:450}.paper-author,.paper-instructor{font-size:13px;color:#b6a6c7;line-height:1.9}.paper-instructor{font-size:13px!important;color:#b6a6c7!important}.back-link{font-size:12px;color:#ad9bc3}.paper-hero>.eyebrow{font-size:11px}.paper-actions .button{font-size:12px}.paper-sidebar{border:1px solid #ffffff16;border-radius:13px;background:#1c1723;top:115px}.paper-sidebar>.eyebrow{font-size:10px}.paper-sidebar dl>div{border-color:#ffffff1b}.paper-sidebar dt{font-size:10px;color:#9786ab}.paper-sidebar dd{font-size:13px;color:#c7b8d6;line-height:1.9}.paper-sidebar>.small-muted{font-size:11px!important;color:#a08eaf}.paper-downloads a{font-size:11px;color:#c7b3e0;border-color:#ffffff26;line-height:1.9}.paper-body h2{font-family:var(--sans);font-size:30px;line-height:1.4;letter-spacing:-.035em;font-weight:450}.paper-body .eyebrow{font-size:10px;color:#af9cc1}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:16px;line-height:2;max-width:68ch;color:#b6a9c4}.paper-body .paper-abstract{font-size:17px!important;color:#c6bad2!important}.conference-callout{background:linear-gradient(130deg,#33233d,#241e2d);border-color:#a587bb;border-radius:0 12px 12px 0;padding:31px 33px}.conference-callout>.eyebrow{font-size:10px}.conference-callout h2{font-family:var(--sans);font-size:28px;line-height:1.5;letter-spacing:-.035em;font-weight:450}.conference-callout>p:last-child{font-size:12px;color:#a995b9}.paper-scope{background:#211925;border:1px solid #ffffff19;border-radius:12px;padding:27px}.paper-scope p{font-size:14px!important;color:#ab99b9!important}.model-diagram,.theme-diagram{background:#251c2c;border-color:#ffffff22;border-radius:10px}.model-diagram>p,.theme-diagram>p{color:#dac5e9!important;font-family:var(--serif)}.model-diagram>span,.theme-diagram>div,.model-diagram small{color:#a68cb8}.model-outcome{border-color:#ffffff28}.diagram-caption{color:#92809e;font-size:11px}.paper-next{font-size:12px;color:#c3a8d9;border-color:var(--line)}.gallery-intro h1{font-family:var(--sans);font-weight:450;font-size:62px;letter-spacing:-.055em}.gallery-lead{font-size:22px;color:#c7b8d5}.gallery-context{font-size:15px}.collection-nav{border-color:var(--line);font-size:13px}.collection-nav a{color:#a58eb9;min-height:44px}.collection-nav a[aria-current]{color:#dec5f1;border-color:#bc9bd2}.collection-nav a:hover{color:#ead6f9}.photo-gallery .photo-button{border-radius:12px;background:#201926;border:1px solid #ffffff1f}.enlarge{background:#191222da;color:#f2e6ff;border:1px solid #ffffff25;border-radius:50px;backdrop-filter:blur(9px)}.gallery-item h2{font-family:var(--sans);font-size:25px;font-weight:450;line-height:1.35}.gallery-item figcaption{color:#bba9c9}.gallery-item figcaption p{font-size:14px}.gallery-end{color:#bea0d4;font-size:13px}.lightbox{background:#100e16;color:#f5ebfc}.lightbox::backdrop{background:#100e16}.lightbox-caption h2{font-family:var(--sans);font-size:25px;line-height:1.4}.lightbox-caption p,.lightbox-toolbar p{color:#b59bc7;font-size:13px}.lightbox .photo-nav,.lightbox .icon-button{background:#241a30;border-color:#685074;color:#f0dfff;min-height:44px}.lightbox .photo-nav:hover,.lightbox .icon-button:hover{background:#3d2950}.lightbox-caption{padding-bottom:25px}.video-section h2{font-family:var(--sans);font-size:34px;font-weight:450;letter-spacing:-.04em}
.portfolio-footer{border-color:#ffffff1c;padding:44px 110px 42px 64px;max-width:1600px;background:#121017;grid-template-columns:1.1fr 1fr auto}.portfolio-footer .brand-text{color:#dcd1e8;font-family:var(--sans);font-size:26px;letter-spacing:-.04em}.portfolio-footer .brand-text em{font-size:1.2em}.footer-signature>p{font-size:10px;color:#8f7f9e}.portfolio-footer nav{font-size:11px;color:#b8a4c9;gap:25px}.footer-colophon{font-size:9px;color:#8f7e9d}.back-to-top{background:#252034e8;border-color:#b0a0d450;color:#ddd2ff;box-shadow:0 0 26px #b19afb12;width:54px;height:54px;right:25px;bottom:25px;backdrop-filter:blur(15px)}.back-to-top:hover{background:#3b2e51;color:#fff;border-color:#c6afff70}.top-progress circle{stroke:#bb9fe2;stroke-width:1.1}.back-to-top .top-arrow{color:#d7c8f6}.reveal.is-visible{animation:reveal-rise .8s cubic-bezier(.2,.65,.3,1) both}@keyframes reveal-rise{from{opacity:.55;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.motion-hero{padding-top:76px}.showcase-stage{width:1030px}.showcase-controls{max-width:1160px}}
@media(max-width:1100px){.wrap,.section-wrap{padding-left:43px;padding-right:43px}.portfolio-header{padding:17px 43px}.portfolio-header nav{gap:18px;font-size:11px}.brand-sub{font-size:7px}.case-row{gap:45px}.case-copy h3{font-size:35px}.case-copy>p:not(.case-lead){font-size:14px}.case-chip{left:20px;top:20px;font-size:8px}.case-image-caption{font-size:8px;left:22px;max-width:77%}.skill-grid{gap:20px}.skill-caption{padding:24px 20px}.skill-caption h3{font-size:20px}.skill-caption .inline-link{font-size:10px}.portfolio-footer{padding-left:43px;padding-right:100px;gap:27px}.portfolio-footer nav{gap:17px}.footer-colophon{font-size:8px}.case-reverse{grid-template-columns:.9fr 1.1fr}}
@media(max-width:1000px){.portfolio-header nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#16141ff5;backdrop-filter:blur(24px);padding:18px 43px 24px;gap:3px;border-bottom:1px solid var(--line);font-size:13px}.portfolio-header nav.is-open{display:flex}.portfolio-header nav a{min-height:44px;padding:11px 0}.portfolio-header nav a:after{display:none}.portfolio-header nav .github-nav{margin-top:7px;border-left:0;border-top:1px solid var(--line);padding-left:0!important;padding-top:16px}.menu-toggle{display:flex;align-items:center;gap:20px}.motion-hero h1{font-size:88px}.showcase-stage{width:79vw}.case-row{gap:35px}.case-copy h3{font-size:31px}.case-copy .case-lead{font-size:23px}.case-copy .tags{display:none}.case-copy .button{font-size:10px;padding-left:17px;padding-right:17px}.economics-case{padding:73px 25px}.economics-case>p{font-size:38px}.case-copy p.case-conference{font-size:11px}.case-copy p.case-faculty{font-size:10px}.motion-directory-grid>a{padding:25px}.motion-directory-grid h3{font-size:22px}.skill-caption h3{font-size:20px}.about-section{gap:60px}.about-lead{font-size:31px}.recognition-layout{gap:45px}.award{grid-template-columns:55px 1fr;gap:16px}.award-type{display:none}.award h3{font-size:24px}.baftx-gallery{grid-template-columns:1.4fr .7fr}.paper-layout{gap:40px}.paper-body h2{font-size:28px}.paper-hero h1{font-size:45px}}
@media(max-width:800px){.motion-hero{padding-top:43px;padding-bottom:38px}.motion-hero h1{font-size:78px}.motion-intro{font-size:14px}.hero-identity{font-size:10px}.showcase-stage{width:84vw;aspect-ratio:1.7}.showcase-controls{flex-wrap:wrap;justify-content:center;gap:12px 24px}.showcase-controls>p{flex-basis:100%;text-align:center}.showcase-select button{font-size:10px;padding:8px 13px}.field-ribbon{padding:22px 0}.ribbon-track{gap:28px}.ribbon-track span{font-size:21px}.motion-work{padding-top:76px;padding-bottom:25px}.motion-heading{gap:30px}.motion-heading h2{font-size:42px}.motion-heading>p{font-size:11px}.case-row,.case-reverse{grid-template-columns:1fr;gap:29px;margin-top:38px;margin-bottom:57px}.case-reverse .case-image{order:0}.case-reverse .case-copy{order:1}.case-image{aspect-ratio:1.6}.software-case{padding:65px 39px}.software-case img{max-width:560px;margin:auto}.case-copy h3{font-size:35px}.case-copy .case-lead{font-size:27px}.case-copy>p:not(.case-lead){max-width:600px;font-size:15px;margin-top:15px}.case-copy .tags{display:flex;margin-top:18px}.case-copy .button{font-size:12px;margin-top:22px}.case-number{margin-bottom:15px}.economics-case>p{font-size:49px}.economics-case{padding-left:39px}.case-copy p.case-conference{font-size:12px}.case-copy p.case-faculty{font-size:11px}.home-skills{padding-top:28px;padding-bottom:70px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.home-skills .skill-scene:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}.home-skills .skill-scene:last-child .skill-picture{aspect-ratio:1;border-bottom:0;border-right:1px solid #ffffff1d}.skill-caption h3{font-size:21px}.skill-caption>p:not(.eyebrow){font-size:13px}.motion-directory{padding-bottom:76px}.motion-directory-grid{grid-template-columns:1fr}.motion-directory-grid>a{min-height:0;padding:28px 80px 28px 27px}.motion-directory-grid h3{font-size:28px;margin-top:15px}.motion-directory-grid p{max-width:600px;padding-bottom:0;font-size:13px}.motion-directory-grid .directory-arrow{bottom:30px}.skills-practice{grid-template-columns:1fr;gap:25px}.skills-practice h2{font-size:36px}.page-hero{padding-top:50px;padding-bottom:37px}.page-hero h1{font-size:66px}.page-deck{font-size:15px}.software-feature{grid-template-columns:1fr}.software-copy{padding:35px}.software-copy h3{font-size:43px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:15px}.software-visual{padding:30px}.software-visual img{max-height:430px;object-fit:contain}.github-section-heading h2{font-size:35px}.repository-list article{grid-template-columns:35px 1fr;gap:21px}.repository-list article>.inline-link{grid-column:2;justify-self:start}.repository-list h3{font-size:29px}.experience-intro{grid-template-columns:1fr;gap:24px}.experience-collections{gap:19px}.experience-card-copy h3{font-size:23px}.experience-card-copy>p:not(.eyebrow){font-size:13px}.conference-feature,.conference-recognition{grid-template-columns:1fr;gap:29px;padding-top:32px;padding-bottom:48px}.conference-feature h2,.conference-recognition h2{font-size:36px}.conference-feature h3,.conference-recognition h3{font-size:29px}.recognition-layout{grid-template-columns:1fr;gap:25px}.recognition-intro{max-width:600px}.recognition-subtitle br{display:none}.recognition-subtitle{font-size:33px}.baftx-heading h2{font-size:40px}.baftx-heading>p{font-size:12px}.baftx-gallery{grid-template-columns:1.3fr .7fr;gap:18px}.baftx-main img{aspect-ratio:1.2;object-position:50% 50%}.baftx-certificate .photo-button{aspect-ratio:.85}.about-section{grid-template-columns:1fr;gap:35px}.about-section>div>p:not(.about-lead){max-width:650px}.about-lead{max-width:600px}.education-block h3{font-size:31px}.contact-inner{grid-template-columns:1fr;gap:35px}.contact-inner h2{font-size:58px}.paper-layout{grid-template-columns:1fr;gap:25px}.paper-sidebar{position:static}.paper-hero h1{font-size:40px}.paper-sidebar dl{display:grid;grid-template-columns:1fr 1fr}.gallery-intro h1{font-size:49px}.portfolio-footer{grid-template-columns:1fr 1fr;padding:35px 43px 38px}.portfolio-footer nav{justify-content:flex-end}.footer-colophon{grid-column:1/-1;text-align:left;font-size:9px}.back-to-top{right:20px;bottom:20px}}
@media(max-width:540px){html{scroll-padding-top:95px}.wrap,.section-wrap{padding-left:24px;padding-right:24px}.portfolio-header{padding:14px 24px}.brand{font-size:13px;gap:10px}.brand-mark{width:37px;height:37px;font-size:14px;border-radius:11px}.brand-sub{font-size:7px}.portfolio-header nav{padding-left:24px;padding-right:24px}.menu-toggle{font-size:11px;padding:8px 11px;gap:17px}.button{font-size:11px;min-height:48px;padding:12px 19px}.quiet-link,.inline-link{font-size:11px}.motion-hero{padding-top:34px;padding-bottom:31px}.hero-identity{align-items:center;gap:8px;max-width:330px;margin:auto;font-size:9px;letter-spacing:0}.hero-identity img{width:26px;height:26px}.identity-divider{margin:0 4px}.motion-hero h1{font-size:clamp(51px,13.8vw,74px);line-height:1.05;letter-spacing:-.06em;margin-top:24px;margin-bottom:19px}.motion-hero h1 em{font-size:1.12em}.motion-intro{font-size:12px;line-height:1.9}.motion-intro br{display:none}.motion-actions{gap:20px;margin-top:23px}.hero-orbit{display:none}.showcase{padding-top:8px;padding-bottom:21px}.showcase-stage{width:86vw;aspect-ratio:1.17}.showcase-slide{border-radius:12px}.showcase-slide.is-before{transform:translateX(-88%) scale(.84) rotate(-4deg)}.showcase-slide.is-after{transform:translateX(88%) scale(.84) rotate(4deg)}.showcase-top{height:35px;font-size:7px;padding:0 12px;letter-spacing:.08em}.showcase-image{height:calc(100% - 35px)}.showcase-image img{object-position:48% 50%}.screenshot-slide{padding:13px 10px 44px}.screenshot-slide img{object-fit:contain}.showcase-caption{font-size:11px;line-height:1.7;padding:37px 16px 17px}.showcase-caption>span:last-child{font-size:20px}.showcase-controls{padding-left:24px;padding-right:24px;margin-top:20px;gap:12px 15px}.showcase-controls>p{font-size:9px}.showcase-select{padding:3px;gap:1px}.showcase-select button{font-size:9px;padding:8px 11px}.showcase-arrows{gap:5px}.showcase-arrows button{min-width:44px;min-height:44px;font-size:17px}.field-ribbon{margin-top:18px;padding:20px 0}.ribbon-track span{font-size:20px}.ribbon-track{gap:25px}.ribbon-track i{font-size:24px}.motion-work{padding-top:56px;padding-bottom:8px}.motion-heading{display:block;margin-bottom:29px}.motion-heading h2{font-size:36px;line-height:1.17;margin-top:13px}.motion-heading>p{font-size:12px;margin-top:19px}.motion-heading .quiet-link{margin-top:20px}.case-row{margin-top:31px;margin-bottom:45px;gap:24px}.case-image{aspect-ratio:1.21;border-radius:13px}.software-case{padding:62px 20px 58px}.case-chip{font-size:7px;top:17px;left:16px;padding:5px 9px}.case-image-caption{font-size:8px;bottom:18px;left:18px;max-width:80%}.case-number{font-size:9px;margin-bottom:16px}.case-copy h3{font-size:33px}.case-copy .case-lead{font-size:27px}.case-copy>p:not(.case-lead){font-size:14px;line-height:1.95;margin-top:16px}.case-copy .tags{margin-top:19px}.tags span{font-size:9px}.case-copy .button{font-size:11px;margin-top:23px}.economics-case{padding:68px 25px 52px}.economics-case>p{font-size:40px;line-height:1.13}.case-corner{right:20px;bottom:17px;font-size:23px}.case-copy p.case-conference{font-size:12px}.case-copy p.case-faculty{font-size:11px}.home-skills{padding-top:28px;padding-bottom:57px}.skill-grid{grid-template-columns:1fr;gap:25px}.home-skills .skill-scene:last-child{display:block;grid-column:auto}.home-skills .skill-scene:last-child .skill-picture{aspect-ratio:1.22;border-right:0;border-bottom:1px solid #ffffff1d}.skill-caption{padding:25px}.skill-caption h3{font-size:24px}.skill-caption>p:not(.eyebrow){font-size:14px}.skill-caption .eyebrow{font-size:10px}.skill-caption .inline-link{font-size:11px}.illustration-note{font-size:10px;line-height:1.9}.skills-section{padding-top:9px;padding-bottom:50px}.skills-section .skill-grid{row-gap:25px}.skills-practice{padding-top:37px;padding-bottom:44px;gap:23px}.skills-practice h2{font-size:33px}.skills-practice>div>p:not(.eyebrow){font-size:14px}.skills-practice-links{gap:4px 20px}.motion-directory{padding-top:14px;padding-bottom:53px}.motion-directory-grid{gap:17px}.motion-directory-grid>a{padding:24px 63px 26px 24px}.motion-directory-grid h3{font-size:25px}.motion-directory-grid p{font-size:13px;line-height:1.9}.motion-directory-grid>a>span:first-child{font-size:9px}.motion-contact{padding-top:56px;padding-bottom:61px}.motion-contact h2{font-size:51px}.motion-contact-links{gap:22px;flex-wrap:wrap}.motion-contact .eyebrow{font-size:10px}.page-hero{padding-top:38px;padding-bottom:31px}.page-hero .eyebrow{font-size:9px}.page-hero h1{font-size:50px;line-height:1.08;margin-top:22px}.page-deck{font-size:14px;line-height:2;margin-top:23px}.page-main>.section{padding-top:22px;padding-bottom:43px}.software-copy{padding:28px 24px}.software-copy h3{font-size:36px}.software-copy>p:not(.status):not(.software-lead):not(.product-footnote){font-size:14px}.status{font-size:10px}.software-lead{font-size:26px}.feature-list{font-size:12px}.software-copy .feature-list{font-size:12px}.software-visual{padding:24px 16px}.software-visual figcaption{font-size:9px}.software-copy .button{font-size:10px;padding:13px 16px}.github-projects{padding-bottom:47px}.github-section-heading h2{font-size:32px}.repository-list article{grid-template-columns:25px 1fr;gap:20px 14px;padding:27px 0}.repository-list h3{font-size:28px;line-height:1.3}.repository-list article>div>p:not(.eyebrow){font-size:14px}.repository-list .eyebrow{font-size:9px}.research-row{grid-template-columns:minmax(0,1fr) 44px;gap:19px 13px;padding:28px 0}.research-marker{display:flex;flex-wrap:wrap;gap:10px 15px;align-items:baseline;grid-column:1/-1}.research-marker>span{font-size:10px}.research-marker>p:not(.research-professor){font-size:20px;margin-top:0}.research-marker small{font-size:10px}.research-marker .research-professor{font-size:12px;width:100%;margin-top:0;line-height:1.9}.research-content h3{font-size:25px;line-height:1.35}.research-content>p:not(.research-method){font-size:14px;line-height:1.95}.research-method{font-size:9px}.round-link{margin-top:25px;width:44px;height:44px}.research-content .conference-inline{font-size:12px!important}.experience-intro h3{font-size:34px}.experience-intro>p{font-size:14px}.experience-collections{grid-template-columns:1fr;gap:32px}.experience-card-copy h3{font-size:28px}.experience-card-copy>p:not(.eyebrow){font-size:14px}.photo-cover{aspect-ratio:1.5}.service-note{gap:20px}.service-note strong,.service-note p>span{font-size:12px}.video-heading h3{font-size:32px}.video-heading p{font-size:13px}.video-project h4{font-size:25px}.video-project p{font-size:12px}.video-project figcaption>span{font-size:10px}.conference-feature h2,.conference-recognition h2{font-size:33px}.conference-feature h3,.conference-recognition h3{font-size:25px;line-height:1.45}.conference-feature article>p:last-of-type{font-size:14px}.conference-recognition article{grid-template-columns:46px 1fr;gap:15px}.conference-recognition article p{font-size:14px}.baftx-feature{padding-top:13px;padding-bottom:45px}.baftx-heading{display:block;margin-bottom:24px}.baftx-heading .eyebrow{font-size:9px}.baftx-heading h2{font-size:36px}.baftx-heading>p{font-size:13px;margin-top:18px}.baftx-heading>p br{display:none}.baftx-gallery{grid-template-columns:1fr;gap:25px}.baftx-main img{aspect-ratio:1.2;object-position:50% 50%}.baftx-certificate .photo-button{aspect-ratio:1.01}.baftx-gallery figcaption{font-size:12px}.baftx-gallery .enlarge{font-size:10px}.recognition-subtitle{font-size:31px}.recognition-intro{font-size:14px}.award{grid-template-columns:49px 1fr;gap:15px;padding:25px 0}.award h3{font-size:23px;line-height:1.3}.award p{font-size:12px}.award-year{font-size:10px}.programs>p:not(.eyebrow){font-size:13px}.about-lead{font-size:29px;line-height:1.4}.about-section>div>p:not(.about-lead){font-size:15px}.education-block h3{font-size:28px}.education-block>p:not(.eyebrow){font-size:14px}.focus-block .tags span{font-size:11px}.learning-details summary{font-size:14px}.learning-details li{font-size:13px}.contact-inner{padding-top:48px;padding-bottom:49px}.contact-inner h2{font-size:51px}.contact-inner p:not(.eyebrow){font-size:14px}.email-link{font-size:22px;gap:15px}.resource-links>a,.resource-links>button{font-size:15px}.resource-links small{font-size:11px}.chapter-next{padding-top:29px;padding-bottom:33px;gap:25px}.chapter-next>span{font-size:8px;max-width:85px;line-height:1.9}.chapter-next>a{font-size:28px;gap:23px;line-height:1.3}.chapter-next>a>span{font-size:23px}.paper-main{padding-top:25px;padding-bottom:34px}.paper-hero h1{font-size:33px;line-height:1.25;letter-spacing:-.04em}.paper-hero>.eyebrow{font-size:9px;line-height:1.9}.paper-author,.paper-instructor{font-size:12px!important}.paper-actions .button{font-size:11px;gap:13px}.paper-body .eyebrow{font-size:9px}.paper-body h2{font-size:27px;line-height:1.4}.paper-body p:not(.eyebrow):not(.diagram-caption),.findings li{font-size:15px;line-height:2}.paper-body .paper-abstract{font-size:16px!important}.paper-sidebar dd{font-size:12px}.paper-sidebar dt{font-size:9px}.paper-sidebar>.small-muted{font-size:11px!important}.paper-downloads a{font-size:11px}.conference-callout{padding:25px 23px}.conference-callout>.eyebrow{font-size:9px}.conference-callout h2{font-size:24px;line-height:1.5}.conference-callout>p:last-child{font-size:11px}.model-diagram>p{font-size:21px!important}.model-diagram small{font-size:11px}.diagram-caption{font-size:10px}.theme-diagram>p{font-size:22px!important}.theme-diagram>div{font-size:11px}.gallery-intro h1{font-size:43px}.gallery-lead{font-size:23px}.gallery-context{font-size:14px;line-height:2}.collection-nav{font-size:12px}.gallery-item h2{font-size:26px}.gallery-item figcaption p{font-size:14px}.gallery-end{font-size:12px}.portfolio-footer{display:block;padding:33px 24px 39px}.portfolio-footer .brand-text{font-size:27px}.footer-signature>p{font-size:10px}.portfolio-footer nav{justify-content:flex-start;flex-wrap:wrap;gap:20px;font-size:11px;margin-top:24px;max-width:280px}.footer-colophon{font-size:9px;margin-top:23px;text-align:left;padding-right:50px}.back-to-top{width:50px;height:50px;right:17px;bottom:17px}.lightbox-caption h2{font-size:22px}.lightbox-caption p{font-size:12px}.lightbox-toolbar p{font-size:12px}}
/* One font throughout, as requested. Accent comes from light and spacing. */
:root{--serif:'Manrope',Arial,sans-serif}
em{font-style:normal;font-family:var(--sans)}
.motion-hero h1 em,.motion-heading h2 em,.motion-contact h2 em,.page-hero h1 em,.baftx-heading h2 em,.skills-practice h2 em,.economics-case>p em{font-size:1em;letter-spacing:inherit}
.software-lead{font-family:var(--sans);font-style:normal;font-size:23px;letter-spacing:-.03em}
.portfolio-footer .brand-text em{font-size:1em}
@media(max-width:540px){.motion-hero h1{font-size:clamp(43px,12.1vw,62px)}.case-copy .case-lead{font-family:var(--sans);font-size:22px;letter-spacing:-.03em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ribbon-track{animation:none;transform:none}.reveal.is-visible{animation:none}.showcase-slide{transition:none}.hero-orbit{display:none}}

/* Keep decorative orbit artwork inside the viewport and make the shared PDF easy to find. */
body{overflow-x:clip}.motion-hero{overflow-x:clip;overflow-y:visible}
.portfolio-header nav .portfolio-download{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding:10px 14px;color:#e9e7ff;background:#b7b3ff12;border:1px solid #b7b3ff43;border-radius:9px;white-space:nowrap;line-height:1.5}
.portfolio-header nav .portfolio-download:after{display:none}.portfolio-header nav .portfolio-download:hover{color:#fff;background:#b7b3ff24;border-color:#c8c4ff80}.portfolio-download>span{font-size:17px;line-height:1}
@media(min-width:1201px) and (max-width:1400px){.portfolio-header{padding-left:40px;padding-right:40px;gap:20px}.portfolio-header nav{gap:17px}}
@media(max-width:1200px){.portfolio-header nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;align-items:stretch;gap:3px;padding:18px clamp(24px,4vw,48px) 24px;background:#16141ff7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--line);font-size:14px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}.portfolio-header nav.is-open{display:flex}.portfolio-header nav a{min-height:44px;padding:11px 0}.portfolio-header nav a:after{display:none}.portfolio-header nav .github-nav{margin-top:7px;border-left:0;border-top:1px solid var(--line);padding-left:0!important;padding-top:16px}.portfolio-header nav .portfolio-download{min-height:50px;margin-top:10px;padding:12px 15px;white-space:normal}.menu-toggle{display:flex;align-items:center;gap:18px}}
