/* Shared styles belong here. RST roles apply them to individual words. */
:root{--paper:#faf9f5;--ink:#242d30;--muted:#596367;--accent:#953e32;--line:#d9d9d0;--soft:#efeee7;--blue:#255d6b;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body.wrf-home{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.shell{width:min(1180px,calc(100% - 96px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:20px;background:var(--ink);color:#fff;padding:12px 20px;z-index:10}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--line)}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:21px;text-decoration:none}.monogram{font:600 28px/1 var(--serif);letter-spacing:-2px;text-decoration:none}.monogram span{color:var(--accent)}.brand-name{font-size:12px;letter-spacing:.02em;border-left:1px solid var(--line);padding-left:21px}.header-inner nav{display:flex;gap:26px;font-size:13px;align-items:center}.header-inner nav a{text-decoration:none;padding-block:10px}.header-inner nav a:hover{text-decoration:underline}.nav-contact{border-left:1px solid var(--line);padding-left:25px}.nav-contact span{margin-left:10px;color:var(--accent)}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12}h1{font-size:clamp(49px,5.5vw,78px);letter-spacing:-3.5px;margin-bottom:25px}h2{font-size:clamp(34px,3.4vw,46px);letter-spacing:-1.5px;margin-bottom:20px}h3{font-size:25px;letter-spacing:-.5px;margin-bottom:12px}p{margin-bottom:20px}.eyebrow{font:500 11px/1.6 var(--sans);text-transform:uppercase;letter-spacing:2.2px;color:var(--accent);margin-bottom:22px}.accent{color:var(--accent)}.technical{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92em}.editorial{font-family:var(--serif);font-style:italic}.quiet{color:var(--muted)}
.hero{display:grid;grid-template-columns:1.4fr .8fr;gap:70px;align-items:center;padding:66px 0 62px}.hero-copy .lead{font:24px/1.5 var(--serif);max-width:660px;color:var(--muted);margin-bottom:24px}.affiliations{font-size:13px;line-height:1.8}.affiliations p{margin-bottom:4px}.affiliations a{text-decoration:none}.affiliations a:hover{text-decoration:underline}.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;padding:10px 20px;border:1px solid var(--ink);font-size:12px;text-decoration:none}.button-primary{background:var(--ink);color:var(--paper)}.button-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.button-secondary:hover{background:var(--soft)}.button span{font-size:16px}.portrait-composition{position:relative;padding:20px 0 0 27px;max-width:330px;justify-self:end;width:100%}.portrait-composition:before{content:"";position:absolute;inset:0 22px 45px 0;border:1px solid var(--line);z-index:-1}.portrait-composition img{display:block;width:100%;height:315px;object-fit:cover;object-position:center 44%;filter:saturate(.68)}.portrait-composition figcaption{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:14px;gap:12px}.portrait-composition figcaption span:last-child{font-style:italic}.quicklinks{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin-bottom:74px}.quicklinks a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 25px;border-right:1px solid var(--line);font-size:13px;text-decoration:none}.quicklinks a:first-child{padding-left:0}.quicklinks a:last-child{border-right:0;padding-right:0}.quicklinks small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.quicklinks a>span:last-child{color:var(--accent);font-size:19px}.quicklinks a:hover{background:var(--soft)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2{margin:0}.section-heading>a{font-size:12px;white-space:nowrap;margin-bottom:5px}.research-feature{display:grid;grid-template-columns:1.04fr 1fr;background:var(--soft);min-height:355px}.mesh-figure{margin:0;padding:25px 24px 15px;border-right:1px solid #d5d5cb;display:flex;flex-direction:column;justify-content:center}.mesh-figure svg{width:100%;height:auto;max-height:285px;display:block}.mesh-figure figcaption{font:10px/1.6 ui-monospace,monospace;color:var(--muted);letter-spacing:.5px;margin-top:14px;display:flex;gap:15px;justify-content:space-between}.mesh-figure figcaption b{font-weight:400;color:var(--blue)}.feature-copy{padding:40px 42px;align-self:center}.feature-copy .eyebrow{font-size:10px;margin-bottom:15px}.feature-copy h3{font-size:31px}.feature-copy p{font-size:14px;color:var(--muted)}.feature-copy .feature-principle{font-family:var(--serif);font-size:18px;color:var(--ink)}.feature-links{display:flex;gap:23px;font-size:12px}.research-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:34px;margin-bottom:70px}.research-topics>div{border-top:1px solid var(--line);padding-top:20px}.research-topics h3{font-size:23px;margin-bottom:10px}.research-topics p{font-size:13px;color:var(--muted);margin-bottom:12px}.research-topics a{font-size:12px}.topic-index{font:10px/1.5 ui-monospace,monospace;color:var(--accent);margin-bottom:13px}
.publications{border-top:1px solid var(--line);padding-top:58px;margin-bottom:70px}.publication{display:grid;grid-template-columns:64px 1fr;gap:25px;border-top:1px solid var(--line);padding:26px 0}.publication time{font:12px/1.5 ui-monospace,monospace;color:var(--accent);padding-top:6px}.publication h3{font-size:24px;margin-bottom:9px;max-width:860px}.publication h3 a{text-decoration:none}.publication h3 a:hover{text-decoration:underline}.publication .byline{font-size:12px;color:var(--muted);margin-bottom:10px}.paper-links{display:flex;gap:22px;font-size:11px;align-items:center;flex-wrap:wrap}.publication details{font-size:12px;margin-top:12px}.publication summary{cursor:pointer;color:var(--muted);width:fit-content;padding-block:5px}.publication details[open]{background:var(--soft);padding:15px 20px;margin-top:14px}.publication details p{margin:12px 0;font-size:13px;max-width:800px}.publication pre{font:11px/1.65 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:3px}
.software{background:var(--ink);color:var(--paper);padding:36px 39px;margin-bottom:76px}.software .eyebrow{color:#e3a496}.software .section-heading>a{color:#e4dcd3}.software-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:32px}.software-grid article{border-top:1px solid #586064;padding-top:23px}.software-grid h3{font-size:26px}.software-grid p{font-size:13px;color:#cbd0ce;min-height:68px}.software-grid a{font-size:12px}.software-grid a:hover{color:#f1baab}.software-grid .code-label{font:10px/1.5 ui-monospace,monospace;color:#e3a496;margin-bottom:12px}
.people-teaching{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-bottom:70px}.people-teaching h2{font-size:35px}.people-teaching p{font-size:14px;color:var(--muted)}.people-teaching .personal{font:21px/1.5 var(--serif);color:var(--ink);padding-left:20px;border-left:2px solid var(--accent);margin:25px 0}.inline-links{display:flex;gap:24px;flex-wrap:wrap;font-size:12px}.archive-label{display:inline-block;padding:3px 8px;background:var(--soft);color:var(--muted);font:10px/1.6 ui-monospace,monospace;margin-bottom:15px}
.community{border-top:1px solid var(--line);padding-top:52px;display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-bottom:65px}.community h2{font-size:32px}.community p{font-size:14px;color:var(--muted)}.support-list{list-style:none;padding:0;margin:25px 0 15px}.support-list li{display:flex;gap:18px;align-items:baseline;border-top:1px solid var(--line);padding:12px 0;font-size:12px}.support-list time{font:11px ui-monospace,monospace;color:var(--muted)}.support-list small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.community details{font-size:12px}.community summary{cursor:pointer;padding-block:8px}.community details ul{padding-left:18px}.community details li{margin-bottom:10px}.travel figure{margin:24px 0 20px}.travel img{display:block;width:100%;height:auto;border:1px solid var(--line)}.travel figcaption{font:10px/1.6 ui-monospace,monospace;color:var(--muted);margin-top:10px}.travel .trip-stats{display:flex;gap:30px;margin:22px 0 20px}.trip-stats strong{font:30px/1 var(--serif);display:block;font-weight:400;color:var(--ink)}.trip-stats span{font-size:10px;display:block;color:var(--muted);margin-top:7px}
.contact{border-top:1px solid var(--line);padding:44px 0 50px;display:flex;align-items:center;justify-content:space-between;gap:35px}.contact .eyebrow{margin-bottom:8px}.contact h2{font-size:36px;margin-bottom:9px}.contact p{font-size:13px;color:var(--muted);margin-bottom:0}.email-link{font:25px/1.6 var(--serif);text-decoration:none;border-bottom:1px solid var(--accent);padding:8px 0;overflow-wrap:anywhere}.email-link span{margin-left:30px;color:var(--accent)}.site-footer{background:var(--soft);padding:35px 0 22px}.footer-main{display:flex;justify-content:space-between;gap:35px;margin-bottom:35px}.footer-main p{font-size:11px;color:var(--muted);margin:14px 0 0}.footer-main nav{display:grid;grid-template-columns:repeat(2,auto);gap:10px 34px;font-size:11px}.footer-bottom{border-top:1px solid #d5d4ca;padding-top:18px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
/* Docutils emits these classes for containers, roles and explicit targets. */
.document{margin:0}span.target{display:block;scroll-margin-top:30px}main>.section{margin:0}.system-message{border:2px solid red;padding:20px}figure{margin:0}img{max-width:100%}blockquote{margin:0}
@media(min-width:1450px){.hero{padding-top:76px;padding-bottom:74px}}
@media(max-width:1000px){.shell{width:calc(100% - 64px)}.brand-name{display:none}.header-inner{min-height:84px}.hero{gap:40px;grid-template-columns:1.45fr .8fr}h1{font-size:60px}.hero-copy .lead{font-size:22px}.portrait-composition img{height:280px}.portrait-composition{padding-left:20px}.portrait-composition figcaption{flex-direction:column;gap:2px}.feature-copy{padding:30px}.people-teaching,.community{gap:40px}.header-inner nav{gap:20px}.software-grid{gap:23px}}
@media(max-width:740px){.shell{width:calc(100% - 40px)}.header-inner{min-height:0;align-items:start;flex-direction:column;gap:16px;padding:23px 0 17px}.brand-name{display:inline;font-size:11px}.monogram{font-size:25px}.header-inner nav{width:100%;justify-content:space-between;gap:8px;font-size:11px}.nav-contact{padding-left:0;border:0}.nav-contact span{margin-left:3px}.hero{grid-template-columns:1fr;gap:30px;padding:39px 0 37px}h1{font-size:58px;letter-spacing:-2.5px}.hero .eyebrow{font-size:9px;letter-spacing:1.65px;margin-bottom:18px}.hero-copy .lead{font-size:22px}.portrait-composition{display:grid;grid-template-columns:94px 1fr;align-items:center;max-width:none;justify-self:start;padding:0;gap:20px}.portrait-composition:before{display:none}.portrait-composition img{height:108px}.portrait-composition figcaption{font-size:12px;gap:4px;margin:0}.quicklinks{margin-bottom:45px}.quicklinks a{padding:16px 12px;font-size:11px;align-items:start}.quicklinks small{font-size:9px}.quicklinks a>span:last-child{font-size:13px}.section-heading{align-items:start;gap:18px}.section-heading h2{font-size:34px}.section-heading>a{font-size:10px;white-space:normal;max-width:115px;text-align:right;margin-top:24px}.research-feature{grid-template-columns:1fr}.mesh-figure{border-right:0;border-bottom:1px solid #d5d5cb;padding-inline:20px}.mesh-figure svg{max-height:240px}.feature-copy{padding:26px}.feature-copy h3{font-size:29px}.research-topics{grid-template-columns:1fr;gap:22px;margin:26px 0 45px}.research-topics>div{padding-top:16px}.research-topics .topic-index{float:left;width:33px;margin-top:6px}.research-topics h3,.research-topics p,.research-topics a{margin-left:33px}.research-topics p{font-size:14px}.publications{padding-top:37px;margin-bottom:40px}.publication{grid-template-columns:40px 1fr;gap:10px;padding:23px 0}.publication h3{font-size:22px}.publication time{font-size:11px}.publication .byline{font-size:11px}.publication details[open]{padding:12px}.software{padding:27px 23px;margin-bottom:45px}.software-grid{grid-template-columns:1fr;gap:26px;margin-top:25px}.software-grid p{min-height:0}.software-grid h3{font-size:25px}.software-grid article{padding-top:18px}.people-teaching,.community{grid-template-columns:1fr;gap:38px;margin-bottom:40px}.people-teaching h2{font-size:33px}.community{padding-top:35px}.community h2{font-size:31px}.contact{align-items:start;flex-direction:column;gap:22px;padding-block:34px}.contact h2{font-size:34px}.email-link{font-size:24px}.email-link span{margin-left:10px}.footer-main{flex-direction:column;gap:25px}.footer-main nav{grid-template-columns:1fr 1fr;gap:14px 20px}.footer-bottom{flex-direction:column;gap:10px}}
@media(max-width:380px){h1{font-size:51px}.hero-actions .button{padding-inline:15px;gap:15px}.quicklinks small{display:none}.email-link{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body.wrf-home{background:#fff;font-size:10pt}.shell{width:100%}.site-header nav,.skip-link,.hero-actions,.quicklinks,.site-footer{display:none}.header-inner{min-height:40px}.hero{padding:24px 0;grid-template-columns:1.5fr .5fr}.portrait-composition img{height:160px}h1{font-size:40px}.hero-copy .lead{font-size:17px}.software{color:#222;background:#eee;padding:20px}.software-grid p,.software .eyebrow,.software-grid .code-label{color:#444}.research-feature,.people-teaching,.community{break-inside:avoid}.publication{break-inside:avoid}.software-grid{grid-template-columns:repeat(3,1fr)}.contact{padding:20px 0}.publications,.research-topics,.software,.people-teaching,.community{margin-bottom:25px}}
