:root{--paper:#faf9f5;--ink:#27362e;--ink2:#586459;--accent:#385844;--g:#115740;--line:#dce0d6;--surface:#edf1e9;--white:#fdfdfa;--gold:#8a6a2c;--serif:'Source Serif 4',Georgia,serif;--sans:'Source Sans 3',Arial,sans-serif;--s1:#0f8a5f;--s2:#3b6fd0;--s3:#c27a1a;--s4:#7b817d;interpolate-size:allow-keywords}*{box-sizing:border-box}html{scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:1.1875rem/1.65 var(--sans)}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}.wrap{max-width:1180px;margin:0 auto;padding:0 44px}.top{position:sticky;top:0;z-index:20;background:rgb(250 249 245/.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.top .wrap{display:flex;align-items:center;height:64px;gap:28px}.top .me{font:500 1.35rem var(--serif);text-decoration:none;letter-spacing:-.01em}.top nav{margin-left:auto;display:flex;gap:26px;align-items:center}.top nav a{text-decoration:none;font-size:1.02rem;color:var(--ink2);padding:20px 0;border-bottom:2px solid transparent}.top nav a:hover{color:var(--ink)}.top nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.top nav a.cv{border:1px solid var(--line);padding:5px 12px;border-radius:2px;color:var(--ink)}.kicker{font:600 .875rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin:0 0 14px}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;color:var(--ink);margin:0}.display{font-size:clamp(2.6rem,5vw,4rem);line-height:1.08}.display .alt{color:var(--accent)}h2.sec{font-size:clamp(2rem,3.4vw,2.7rem);line-height:1.12;margin-bottom:14px}.lede{font-size:1.25rem;line-height:1.6;color:var(--ink2);margin:20px 0 0;max-width:34em;text-wrap:pretty}.lede b{color:var(--ink);font-weight:500}.more{display:inline-flex;gap:6px;font-weight:600;font-size:1rem;color:var(--accent);text-decoration:none;margin-top:18px;border-bottom:1px solid;padding-bottom:1px}.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.btn{font:600 .98rem var(--sans);text-decoration:none;padding:10px 18px;border:1px solid var(--ink);border-radius:2px;color:var(--ink);background:0 0}.btn.solid{background:var(--ink);color:var(--paper)}.btn:hover{background:var(--surface)}.btn.solid:hover{background:var(--accent);border-color:var(--accent)}.hero{display:grid;grid-template-columns:1.35fr .65fr;gap:64px;align-items:center;padding:64px 0 48px}.portrait{margin:0;justify-self:end;width:100%;max-width:300px}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;display:block;border:6px solid var(--white);box-shadow:0 1px 0 var(--line),0 20px 40px -28px rgb(39 54 46/.5)}.portrait figcaption{margin-top:14px;font-size:1rem;line-height:1.45;color:var(--ink2)}.portrait figcaption b{display:block;font:500 1.3rem var(--serif);color:var(--ink);margin-bottom:2px}.creds{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.creds>div{padding:20px 22px 20px 0}.creds>div+div{padding-left:22px;border-left:1px solid var(--line)}.creds .n{font:2.1rem/1.1 var(--serif);color:var(--accent);font-variant-numeric:lining-nums}.creds .n small{font-size:.5em;color:var(--ink2)}.creds .l{font-size:1rem;color:var(--ink);margin-top:6px;line-height:1.35}.creds .s{font-size:.9rem;color:var(--ink2)}.band{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;padding:88px 0;border-top:1px solid var(--line)}.band.tint{background:var(--surface);box-shadow:0 0 0 100vmax var(--surface);clip-path:inset(0 -100vmax);border-top:0}.band .head{position:sticky;top:110px;align-self:start}.band .head p{color:var(--ink2);margin:0;max-width:26em}.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-bottom:34px}.areas div{padding:14px 16px 14px 0}.areas div+div{padding-left:16px;border-left:1px solid var(--line)}.areas small{display:block;font-size:.88rem;color:var(--ink2)}.areas b{font:1.15rem/1.3 var(--serif)}.areas.stack{grid-template-columns:1fr}.areas.stack div{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:baseline;padding:12px 0;border-left:0;border-bottom:1px solid var(--line)}.areas.stack div+div{padding-left:0;border-left:0}.areas.stack small{font-size:.95rem}.lab{font:600 .875rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin:0 0 6px}details.study{border-top:1px solid var(--line)}details.study:last-of-type{border-bottom:1px solid var(--line)}details.study summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr 24px;gap:0 14px;padding:18px 0;align-items:start}details.study summary::-webkit-details-marker{display:none}details.study .no{font:.95rem var(--serif);color:var(--ink2);padding-top:6px}details.study .v{font-size:.95rem;color:var(--ink2)}details.study .q{font:1.5rem/1.25 var(--serif);display:block;margin-top:2px}details.study .pm{font-size:1.4rem;color:var(--accent);line-height:1.6;transition:rotate .3s}details.study[open] .pm{rotate:45deg}details.study::details-content{block-size:0;overflow:hidden;transition:block-size .4s cubic-bezier(.22,1,.36,1),content-visibility .4s allow-discrete}details.study[open]::details-content{block-size:auto}.sbody{padding:0 0 24px 58px}.sbody .t{font:italic 1.05rem/1.45 var(--serif);color:var(--ink2);margin:0 0 12px}.sbody p{margin:0 0 14px}.sbody dl{display:grid;grid-template-columns:1fr 2fr;gap:14px 24px;margin:0 0 16px}.sbody dt{font:600 .875rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding-top:4px}.sbody dd{margin:0;font-family:var(--serif);font-size:1.08rem;line-height:1.5}.badge{font:600 .875rem/1 var(--sans);letter-spacing:.06em;color:var(--accent);border:1px solid #b9c9bb;border-radius:2px;padding:3px 5px;margin-left:8px;vertical-align:3px;white-space:nowrap}.badge.award{color:var(--gold);border-color:#dccdaa}.pillars{border-top:1px solid var(--line)}.pillar{display:grid;grid-template-columns:1fr auto;gap:2px 20px;padding:16px 0;border-bottom:1px solid var(--line)}.pillar small{grid-column:1/-1;font:600 .875rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}.pillar b{font:1.45rem/1.25 var(--serif)}.pillar span{color:var(--ink2);font-size:1rem}.pillar .ev{text-align:right;font:1.4rem/1.2 var(--serif);color:var(--accent);grid-row:2/4;grid-column:2;align-self:center}.pillar .ev small{display:block;font:.875rem var(--sans);letter-spacing:0;text-transform:none;color:var(--ink2)}.aibox{margin-top:34px;padding:26px 28px;background:var(--white);border:1px solid var(--line)}.aibox h3{font-size:1.6rem;margin:4px 0 8px}.steps{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}.steps li{counter-increment:s;border-top:2px solid var(--accent);padding-top:10px}.steps li::before{content:counter(s,decimal-leading-zero);font:1rem var(--serif);color:var(--ink2)}.steps b{display:block;font-weight:600;margin:2px 0 4px}.steps span{font-size:1rem;color:var(--ink2);line-height:1.5;display:block}.motto{font:italic 1.25rem var(--serif);color:var(--accent);margin:20px 0 0}.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.rows>li{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.rows .r{color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:1rem}.rows .sub{display:block;color:var(--ink2);font-size:.95rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}.page{display:grid;grid-template-columns:200px 1fr;gap:56px;padding:48px 0 80px}.subnav{position:sticky;top:100px;align-self:start}.subnav a{display:block;text-decoration:none;color:var(--ink2);font-size:1rem;padding:8px 12px;border-left:2px solid var(--line)}.subnav a.on{color:var(--ink);border-left-color:var(--accent);background:var(--surface)}.page section{padding:0 0 64px;scroll-margin-top:90px}.page section+section{border-top:1px solid var(--line);padding-top:56px}.page h1{font-size:clamp(2.4rem,4.4vw,3.4rem);line-height:1.1;margin-bottom:14px}.page h2{font-size:2.1rem;margin-bottom:8px}.page .intro{color:var(--ink2);max-width:36em;margin:0 0 24px;font-size:1.22rem}.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:var(--white);border:1px solid var(--line);padding:22px}.card .v{font-size:.95rem;color:var(--ink2)}.card h3{font-size:1.4rem;line-height:1.25;margin:6px 0}.card .t{font:italic .98rem/1.45 var(--serif);color:var(--ink2);margin:0 0 12px}.card dt{font:600 .875rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:12px}.card dd{margin:2px 0 0;font-family:var(--serif);font-size:1.04rem;line-height:1.5}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 18px}.chips button{font:500 .98rem var(--sans);border:1px solid var(--line);background:var(--white);padding:7px 14px;border-radius:2px;cursor:pointer;color:var(--ink2);display:inline-flex;align-items:center}.chips button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.pubs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.pub{display:grid;grid-template-columns:70px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.pub[hidden]{display:none}.pub .y{font:1.35rem/1.3 var(--serif);color:var(--ink2);font-variant-numeric:lining-nums}.pub.ditto .y{visibility:hidden}.pub .ti{font:1.3rem/1.35 var(--serif)}.pub .ti a{text-decoration-color:#b9c4b9}.pub .ti a:hover{text-decoration-color:var(--accent)}.pub .au{color:var(--ink2);font-size:1rem;margin-top:4px}.pub .au b{color:var(--ink);font-weight:600}.pub .st{display:inline-block;font:600 .875rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.course{display:grid;grid-template-columns:1fr auto;gap:2px 20px;padding:16px 0;border-bottom:1px solid var(--line)}.course .c{font:1.3rem var(--serif)}.course .e{font:1.35rem var(--serif);color:var(--accent);text-align:right}.course .d{color:var(--ink2);font-size:1rem}.course .s{color:var(--ink2);font-size:.92rem;text-align:right}.k{display:flex;justify-content:space-between;font:600 .875rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:10px 0;border-bottom:1px solid var(--line)}.log{width:100%;border-collapse:collapse;margin-top:16px;font-size:1rem}.log th{text-align:left;font-weight:600;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);width:28%;vertical-align:top}.log td{padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink2)}blockquote{margin:0;font:italic 1.3rem/1.5 var(--serif)}blockquote footer{font:.95rem var(--sans);font-style:normal;color:var(--ink2);margin-top:10px}footer.site{border-top:1px solid var(--line);padding:30px 0 40px;color:var(--ink2);font-size:.98rem}footer.site .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}footer.site a{margin-left:16px}@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 35%}@keyframes rise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}@media(prefers-reduced-motion:reduce){*{transition:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media(max-width:900px){.wrap{padding:0 20px}.top nav{gap:16px}.top nav a{font-size:.98rem}.hero{grid-template-columns:1fr;gap:28px;padding:36px 0 32px}.portrait{justify-self:start;display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;max-width:none}.portrait figcaption{margin:0}.creds{grid-template-columns:1fr 1fr}.creds>div:nth-child(3){padding-left:0;border-left:0}.creds>div:nth-child(n+3){border-top:1px solid var(--line)}.band{grid-template-columns:1fr;gap:28px;padding:56px 0}.band .head{position:static}.areas,.steps,.cards3,.two{grid-template-columns:1fr}.areas.stack div{grid-template-columns:1fr;gap:2px}.areas div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.sbody{padding-left:0}.sbody dl{grid-template-columns:1fr;gap:4px}.page{grid-template-columns:1fr;gap:16px;padding-top:24px}.subnav{top:64px;z-index:10;display:flex;overflow-x:auto;background:var(--paper);margin:0 -20px;padding:8px 20px;border-bottom:1px solid var(--line)}.subnav a{border-left:0;border-bottom:2px solid transparent;white-space:nowrap;padding:6px 10px}.subnav a.on{border-bottom-color:var(--accent);background:0 0}.pub{grid-template-columns:1fr;gap:2px}.pub.ditto .y{display:none}}@media(max-width:420px){.creds .n{font-size:1.6rem}.top .me{font-size:1.15rem}.top nav{gap:12px}.top nav a.cv{padding:4px 8px}}.count{font-size:.95rem;color:var(--ink2);margin:-6px 0 14px}.feedback{color:var(--ink2);margin:18px 0 0;max-width:40em}.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:50}.skip:focus{left:12px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dot-s1{background:var(--s1)}.dot-s2{background:var(--s2)}.dot-s3{background:var(--s3)}.dot-s4{background:var(--s4)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.chips[hidden],.count[hidden]{display:none}