:root{--ink:#13232d;--muted:#52616a;--navy:#112a38;--accent:#bd8a50;--line:#d6dce0;--paper:#fff;--wash:#f1f4f5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.7 Arial,Helvetica,sans-serif}img{display:block;width:100%;height:auto}a{color:inherit;text-underline-offset:5px}a:hover{color:#846030}a:focus-visible,summary:focus-visible{outline:3px solid #ad762f;outline-offset:6px}.skip{position:absolute;left:1rem;top:-6rem;background:white;padding:1rem;z-index:10}.skip:focus{top:1rem}.wrap{max-width:1200px;width:calc(100% - 96px);margin:auto}.site-header{max-width:1440px;margin:auto;padding:27px 48px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{font-size:19px;line-height:1.3;letter-spacing:.12em;text-decoration:none;font-weight:700}.brand span{display:block;font-size:12px;font-weight:400;letter-spacing:.15em;margin-top:8px}.site-header nav{display:flex;gap:32px;font-size:15px}.site-header nav a{text-decoration:none;padding:8px 0;border-bottom:2px solid transparent}.site-header nav a[aria-current]{border-bottom-color:var(--accent)}.hero{background:var(--navy);color:#fff;display:grid;grid-template-columns:1fr 1fr;max-width:1600px;margin:auto}.hero-copy{padding:68px max(48px,calc((100vw - 1200px)/2));padding-right:50px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.18em;margin:0 0 24px;line-height:1.5}.hero .eyebrow{color:#d3b28a}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12;margin:0}h1{font-size:clamp(3.5rem,6.5vw,6.3rem);letter-spacing:-.04em}h1 span{display:block;font:16px/1.5 Arial,sans-serif;letter-spacing:.13em;margin-top:23px}h2{font-size:clamp(2rem,3.2vw,3.1rem);letter-spacing:-.025em}h3{font-size:30px}.roles{font-size:20px;margin-top:34px}.intro{font-size:19px;max-width:490px;line-height:1.7}.hero .intro{color:#d2dce1}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:#f9fafb;color:var(--ink);padding:17px 23px;text-decoration:none;font-size:16px;font-weight:700;margin-top:23px}.button:hover{background:#e6d6c2;color:#13232d}.hero-photos{display:grid;grid-template-rows:1fr 190px;min-width:0}.hero-photos>.portrait{height:100%;max-height:510px;object-fit:cover;object-position:center 31%}.photo-strip{display:grid;grid-template-columns:1.35fr 1fr;gap:5px;border-top:5px solid var(--navy);overflow:hidden}.photo-strip img{height:190px;object-fit:cover}.photo-strip .speaking{object-position:50% 30%}.opening{display:grid;grid-template-columns:1fr 3fr;gap:55px;padding-top:95px;padding-bottom:95px}.opening p:not(.eyebrow){max-width:710px;color:var(--muted)}.text-link{display:inline-block;font-size:16px;font-weight:700;padding:8px 0}.text-link span{margin-left:20px}.broadcast{background:var(--wash);padding:75px 0}.feature{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:65px}.feature p:not(.eyebrow){color:var(--muted)}figure{margin:30px 0}figcaption{font-size:13px;line-height:1.5;color:var(--muted);margin-top:11px}.feature figure{margin:0}.feature img{aspect-ratio:4/3;object-fit:cover}.chapters{padding-top:80px;padding-bottom:90px}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.chapter-grid>a{padding:30px 30px 10px 0;text-decoration:none;position:relative}.chapter-grid>a+a{padding-left:30px;border-left:1px solid var(--line)}.chapter-grid span{font-size:12px;letter-spacing:.12em}.chapter-grid h3{margin-top:28px}.chapter-grid p{font-size:16px;color:var(--muted);max-width:290px}.chapter-grid b{font-size:24px;font-weight:400}footer{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:50px max(48px,calc((100vw - 1200px)/2))}footer div{font-size:14px;text-align:right}footer p{margin-bottom:0;color:#c0cbd1}footer a:hover{color:#d3b28a}.bio-hero{display:grid;grid-template-columns:1fr 270px;align-items:center;gap:80px;padding:55px 0 70px}.bio-hero h1{font-size:clamp(2.8rem,5vw,4.8rem)}.bio-hero img{aspect-ratio:1;object-fit:cover}.bio-hero .intro{max-width:720px;margin-bottom:0;color:var(--muted)}.bio-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:65px;border-top:1px solid var(--line);padding:60px 0 90px}.bio-layout aside nav{position:sticky;top:30px}.bio-layout aside a{display:block;font-size:14px;line-height:1.4;text-decoration:none;margin:0 0 17px}.bio-layout aside .eyebrow{font-size:12px}.bio-section{position:relative;padding-bottom:55px;margin-bottom:48px;border-bottom:1px solid var(--line);scroll-margin-top:30px}.bio-section h2{font-size:34px;margin-bottom:25px}.bio-section p{margin:0 0 22px}.bio-section .section-number{font:13px Arial,sans-serif;letter-spacing:.1em;color:#825b2e;margin-bottom:15px}.bio-section p,.bio-section li{max-width:740px}.bio-section h2 em{font-style:italic}.books{display:grid;grid-template-columns:1fr 1fr;gap:36px;max-width:580px;margin-top:35px}.books img{height:330px;object-fit:contain;object-position:left bottom}.books figure{margin:0}.small-photo{max-width:360px}.personal-photos{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:24px}.personal-photos figure{margin-bottom:0}.poster{max-width:380px}.archive{background:var(--wash);padding:18px 22px;font-size:16px}.archive summary{cursor:pointer}.references{font-size:16px;margin-bottom:45px}.references h2{font-size:27px}.references p{margin:15px 0}@media(min-width:1600px){.hero-copy{padding-left:100px}}@media(max-width:1000px){.hero-copy{padding:50px 32px}.hero-photos{grid-template-rows:1fr 155px}.photo-strip img{height:155px}.wrap{width:calc(100% - 64px)}.feature{gap:35px}.bio-layout{grid-template-columns:200px minmax(0,1fr);gap:35px}.bio-hero{gap:40px}.opening{gap:30px}.hero h1{font-size:4.6rem}}@media(max-width:700px){body{font-size:17px}.site-header{padding:23px 22px;align-items:flex-start;gap:20px}.brand{font-size:15px}.site-header nav{gap:8px;flex-direction:column;font-size:13px}.site-header nav a{padding:1px 0}.wrap{width:calc(100% - 44px)}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 24px 44px}.hero h1{font-size:4.5rem}.hero .roles{margin-top:27px}.hero-photos{grid-template-columns:1.1fr 1fr;grid-template-rows:290px}.hero-photos>.portrait{height:290px;max-height:none;object-position:center}.photo-strip{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;border-top:0;border-left:5px solid var(--navy)}.photo-strip img{height:143px}.opening{grid-template-columns:1fr;gap:6px;padding-top:55px;padding-bottom:55px}.opening h2{font-size:34px}.feature{grid-template-columns:1fr;gap:30px}.broadcast{padding:42px 0}.chapters{padding:55px 0}.chapter-grid{grid-template-columns:1fr}.chapter-grid>a,.chapter-grid>a+a{padding:25px 0;border-left:0;border-bottom:1px solid var(--line)}.chapter-grid h3{margin-top:16px}.chapter-grid p{max-width:none}.chapter-grid b{position:absolute;right:0;top:20px}footer{padding:35px 22px;align-items:flex-start;flex-direction:column}footer div{text-align:left}.bio-hero{padding:35px 0 40px;grid-template-columns:1fr;gap:25px}.bio-hero img{width:155px;grid-row:1}.bio-hero h1{font-size:45px}.bio-layout{display:block;padding-top:30px}.bio-layout aside{padding-bottom:25px;margin-bottom:35px;border-bottom:1px solid var(--line)}.bio-layout aside nav{position:static;columns:2;column-gap:20px}.bio-layout aside .eyebrow{column-span:all}.bio-layout aside a{break-inside:avoid}.bio-section h2{font-size:30px}.bio-section{padding-bottom:30px;margin-bottom:35px}.books{gap:20px}.books img{height:245px}.personal-photos{grid-template-columns:1fr}.personal-photos figure{max-width:420px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.hero,.skip,aside,footer,.text-link{display:none}.wrap{width:100%;max-width:none}.bio-layout{display:block;padding:0;border:0}.bio-hero{padding:0 0 20px;grid-template-columns:1fr 130px}.bio-section{break-inside:auto;margin-bottom:20px;padding-bottom:10px}.bio-section h2{break-after:avoid}figure{break-inside:avoid;max-width:400px}body{font-size:11pt;color:#000}a{color:#000}.bio-hero h1{font-size:30pt}}

/* Motion */
:root{--ease-out:cubic-bezier(.22,.8,.24,1);--ease-in-out:cubic-bezier(.7,0,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(28px)}}
@keyframes fade{from{opacity:0}}
@keyframes unveil{from{clip-path:inset(100% 0 0 0);transform:scale(1.08)}}
@keyframes page-out{to{opacity:0;transform:translateY(-14px)}}
@keyframes page-in{from{opacity:0;transform:translateY(20px)}}

/* Page transitions (View Transitions API, with a fade fallback in site.js) */
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
.site-header{view-transition-name:site-header}
.hero-photos>.portrait,.bio-hero img{view-transition-name:portrait}
::view-transition-old(root){animation:page-out .26s ease-in both}
::view-transition-new(root){animation:page-in .55s var(--ease-out) .08s both}
::view-transition-group(portrait){animation-duration:.65s;animation-timing-function:var(--ease-out)}
.no-vt body{animation:fade .5s ease both}
.no-vt.is-leaving body{opacity:0;transition:opacity .25s ease-in}

/* Entrances */
.site-header{animation:fade .8s ease both}
.hero-copy>*,.bio-hero>div>*{animation:rise .9s var(--ease-out) both}
.hero-copy>:nth-child(2),.bio-hero>div>:nth-child(2){animation-delay:.08s}
.hero-copy>:nth-child(3),.bio-hero>div>:nth-child(3){animation-delay:.16s}
.hero-copy>:nth-child(4){animation-delay:.24s}
.hero-copy>:nth-child(5){animation-delay:.32s}
.hero-photos>.portrait,.bio-hero img{animation:unveil 1.2s var(--ease-in-out) .1s both}
.photo-strip{overflow:hidden}
.photo-strip img{animation:unveil 1.1s var(--ease-in-out) .35s both}
.photo-strip img+img{animation-delay:.47s}
.vt-nav .site-header,.vt-nav .hero-photos>.portrait,.vt-nav .bio-hero img{animation:none}

/* Scroll reveals */
.js [data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease-out) var(--reveal-delay,0s),transform 1s var(--ease-out) var(--reveal-delay,0s)}
.js [data-reveal=image]{transform:none}
.js [data-reveal=image] img{clip-path:inset(10% 4% 4% 4%);transform:scale(1.06);transition:clip-path 1.2s var(--ease-in-out) var(--reveal-delay,0s),transform 1.4s var(--ease-out) var(--reveal-delay,0s)}
.js [data-reveal].is-visible{opacity:1;transform:none}
.js [data-reveal=image].is-visible img{clip-path:inset(0);transform:none}

/* Hover details */
.site-header nav a:not([aria-current]){background:linear-gradient(var(--accent),var(--accent)) left bottom/0 2px no-repeat;background-origin:border-box;transition:background-size .4s var(--ease-out),color .3s}
.site-header nav a:not([aria-current]):hover{background-size:100% 2px}
.button{transition:background-color .3s,color .3s}
.button span,.text-link span,.chapter-grid b{display:inline-block;transition:transform .4s var(--ease-out)}
.button:hover span,.chapter-grid>a:hover b{transform:translate(4px,-4px)}
.text-link:hover span{transform:translateX(6px)}
.chapter-grid>a::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease-out)}
.chapter-grid>a:hover::before,.chapter-grid>a:focus-visible::before{transform:scaleX(1)}
.chapter-grid h3,a{transition:color .3s}
.bio-layout aside a{transition:color .3s,transform .4s var(--ease-out)}
.bio-layout aside a.is-active{color:#825b2e;transform:translateX(6px)}
.archive[open] figure{animation:rise .6s var(--ease-out) both}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js [data-reveal],.js [data-reveal] img{opacity:1;transform:none;clip-path:none}}
@media print{.js [data-reveal],.js [data-reveal] img{opacity:1!important;transform:none!important;clip-path:none!important}}

/* Mobile navigation */
.menu-toggle{display:none}
@media(max-width:700px){
.js .site-header{position:relative;z-index:20;align-items:center}
.js .brand,.js .menu-toggle{position:relative;z-index:30;transition:color .4s}
.js .menu-toggle{display:inline-flex;align-items:center;gap:12px;margin:-10px -10px -10px 0;padding:10px;border:0;background:none;color:inherit;font:700 12px/1 Arial,Helvetica,sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.menu-icon{position:relative;width:24px;height:2px;background:currentColor;transition:background-color .2s}
.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:transform .45s var(--ease-out)}
.menu-icon::before{transform:translateY(-7px)}
.menu-icon::after{transform:translateY(7px)}
.menu-open .menu-icon{background-color:transparent}
.menu-open .menu-icon::before{transform:rotate(45deg)}
.menu-open .menu-icon::after{transform:rotate(-45deg)}
.js .site-header nav{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:110px 24px 60px;background:var(--navy);color:#fff;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease-in-out),visibility 0s .6s}
.menu-open .site-header nav{visibility:visible;clip-path:inset(0);transition:clip-path .6s var(--ease-in-out)}
.js .site-header nav a{font:clamp(2.4rem,11vw,3.2rem)/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.02em;padding:8px 0;border:0;background:none;opacity:0;transform:translateY(24px);transition:opacity .3s,transform .3s}
.menu-open .site-header nav a{opacity:1;transform:none;transition:opacity .6s var(--ease-out) .25s,transform .7s var(--ease-out) .25s,color .3s}
.menu-open .site-header nav a+a{transition-delay:.33s}
.js .site-header nav a[aria-current],.js .site-header nav a:hover{color:#d3b28a}
.menu-open .brand,.menu-open .menu-toggle{color:#fff}
.menu-open{overflow:hidden}
}
