:root{
  --navy:#0F2A3A; --teal:#0E6F73; --teal-soft:#D7ECEA; --saffron:#E4892B; --saffron-soft:#F6E2CB;
  --ivory:#F7F3EC; --paper:#FFFDF9; --stone:#E7E0D4; --ink:#1B2730; --muted:#5B6770; --mist:#EEF4F2;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  --r:18px; --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--ivory);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--saffron)}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.08;margin:0;color:var(--navy)}
h2{font-size:clamp(34px,5vw,64px);letter-spacing:-.02em;margin:16px 0 18px}
.lede{font-size:18px;color:var(--muted);max-width:620px}
section{padding:120px 0}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;transition:background .25s,color .25s;border:0;cursor:pointer}
.btn-primary{background:var(--navy);color:var(--ivory)}
.btn-primary:hover{background:var(--teal)}
.btn-ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--ivory)}
.btn-saffron{background:var(--saffron);color:var(--navy)}
.btn-saffron:hover{background:var(--navy);color:var(--ivory)}
.wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.wd>span{display:inline-block}

/* progress + loader */
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--saffron));transform-origin:0 50%;transform:scaleX(0);z-index:100}
#loader{position:fixed;inset:0;z-index:200;background:var(--ivory);display:grid;place-items:center}
#loader::after{content:"";position:absolute;left:0;right:0;top:100%;height:22vh;background:linear-gradient(var(--saffron),rgba(228,137,43,0))}
#loader svg{width:110px;height:110px}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s}
header.scrolled,.inner header{background:rgba(247,243,236,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--stone)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;max-width:none;padding:0 3.2vw}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:42px;height:42px}
.brand small{display:block;font:600 10px/1 var(--sans);letter-spacing:.2em;color:var(--teal)}
.brand b{font:600 19px/1.2 var(--serif);color:var(--navy)}
.nav-right{display:flex;align-items:center;gap:30px}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-size:14px;font-weight:500;color:var(--ink);position:relative}
.nav ul a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:100%;background:var(--saffron);transform:scaleX(0);transform-origin:right;transition:transform .35s}
.nav ul a:hover::after{transform:scaleX(1);transform-origin:left}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:var(--ivory);padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:600;text-decoration:none}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--saffron)}
.menu-btn{display:none;background:none;border:0;padding:8px;cursor:pointer}
.menu-btn span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .2s}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero */
.hero{position:relative;min-height:100svh;overflow:hidden;padding:0;background:var(--ivory)}
.blobs{position:absolute;inset:-10%;pointer-events:none}
.blobs i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.6;animation:drift 18s ease-in-out infinite alternate}
.blobs i:nth-child(1){width:48vw;height:48vw;right:2%;top:2%;background:#F4B676}
.blobs i:nth-child(2){width:38vw;height:38vw;left:-6%;bottom:-8%;background:#BFE0DC;animation-duration:22s}
.blobs i:nth-child(3){width:26vw;height:26vw;right:34%;bottom:6%;background:#F9D9B4;animation-duration:15s}
@keyframes drift{to{transform:translate(4vw,-3vw) scale(1.12)}}
.hero-portrait{position:absolute;right:13vw;bottom:0;height:min(90svh,960px);aspect-ratio:2020/2560;margin:0;z-index:1}
.hero-portrait .pp{position:relative;width:100%;height:100%}
.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:50% 50% 0 0/38% 38% 0 0;
  -webkit-mask-image:linear-gradient(to bottom,#000 74%,transparent 100%);mask-image:linear-gradient(to bottom,#000 74%,transparent 100%)}
.hero-arcs{position:absolute;inset:-6% -30% 10% -30%;width:160%;height:96%;z-index:-1;overflow:visible}
.hero-copy{position:absolute;left:3.2vw;top:76px;bottom:5svh;z-index:3;display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.hero-copy .intro{pointer-events:auto}
.hero-name{position:relative;margin:0;font-weight:500;line-height:1;letter-spacing:-.04em;
  font-size:clamp(60px,min(10.8vw,17svh),188px);font-optical-sizing:auto;font-variation-settings:"SOFT" 0,"WONK" 0;font-kerning:normal;text-rendering:optimizeLegibility}
.hero-name .pre{display:flex;align-items:center;gap:.35em;font-size:.25em;font-style:italic;font-weight:400;letter-spacing:-.01em;line-height:1;color:var(--teal);margin:0 0 .1em .08em}
.hero-name .pre::before{content:"";width:1.6em;height:2px;background:var(--saffron)}
.hero-name .l1,.hero-name .l2{display:block;overflow:hidden;padding:.06em .04em .28em 0;margin:-.06em 0 -.28em}
.hero-name .l1{color:var(--navy)}
.hero-name .l2{padding-left:.82em;font-style:italic;font-weight:400;letter-spacing:-.03em;color:var(--teal)}
.hero-name .ch{display:inline-block}
.hero-ui{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero-ui>*{pointer-events:auto}
.intro{margin:clamp(22px,4svh,44px) 0 0 .2em;max-width:min(430px,33vw)}
.intro p{font-size:17px;line-height:1.6;color:var(--ink);margin:14px 0 26px}
.intro .ctas{display:flex;gap:10px;flex-wrap:wrap}
.side{position:absolute;right:3.2vw;text-align:right;font-size:14px;line-height:1.4;color:var(--ink)}
.side b{display:block;font:600 22px/1.15 var(--serif);color:var(--navy)}
.side::before{content:"+";display:block;color:var(--saffron);font:600 18px var(--sans);margin-bottom:6px}
.side.s1{top:30%}.side.s2{top:52%}
.cue{position:absolute;right:3.2vw;bottom:5svh;display:flex;align-items:center;gap:12px;font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.cue i{width:1.5px;height:46px;background:var(--stone);position:relative;overflow:hidden}
.cue i::after{content:"";position:absolute;left:0;top:-50%;width:100%;height:50%;background:var(--saffron);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{to{top:100%}}
@keyframes menuIn{from{opacity:0;transform:translateY(18px)}}

/* ribbons */
.ribbons{position:relative;padding:70px 0;overflow:hidden}
.ribbon{white-space:nowrap;padding:18px 0;width:110%;margin-left:-5%}
.ribbon .row{display:inline-flex;will-change:transform}
.ribbon span{display:inline-flex;align-items:center;gap:28px;padding-right:28px;font:500 clamp(22px,2.6vw,36px)/1 var(--serif)}
.ribbon .sep{width:14px;height:14px;border-radius:50%;border:3px solid currentColor;opacity:.6}
.r1{background:var(--saffron);color:var(--navy);transform:rotate(-2.2deg);position:relative;z-index:2;box-shadow:0 18px 40px -24px rgba(15,42,58,.5)}
.r2{background:var(--teal);color:var(--ivory);transform:rotate(1.6deg);margin-top:-14px}
.r2 span{font-style:italic;font-weight:400}

/* statement */
.statement{padding:90px 0 120px}
.statement p{font:400 clamp(28px,3.9vw,54px)/1.22 var(--serif);letter-spacing:-.015em;color:var(--navy);margin:26px 0 0;max-width:1100px}
.statement .hl{color:var(--teal);font-style:italic}
.statement .hs{color:var(--saffron);font-style:italic}

/* latest */
.latest{padding:0 0 40px}
.now-card{display:grid;grid-template-columns:auto 1fr auto;gap:44px;align-items:center;background:var(--paper);border:1px solid var(--stone);border-radius:28px;padding:44px 48px;position:relative;overflow:hidden}
.now-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--saffron),var(--teal))}
.pulse{display:inline-flex;align-items:center;gap:10px;font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--saffron)}
.pulse i{width:9px;height:9px;border-radius:50%;background:var(--saffron);box-shadow:0 0 0 0 rgba(228,137,43,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(228,137,43,0)}100%{box-shadow:0 0 0 0 rgba(228,137,43,0)}}
.now-card blockquote{margin:14px 0 0;font:400 clamp(24px,2.6vw,34px)/1.25 var(--serif);color:var(--navy)}
.now-card p{margin:12px 0 0;color:var(--muted);font-size:15px;max-width:720px}
.now-card .date{font:600 84px/1 var(--serif);color:var(--saffron)}
.now-card .date small{display:block;font:500 13px/1.4 var(--sans);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:8px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px}
.stat{border-top:2px solid var(--navy);padding:26px 4px 0}
.stat b{display:block;font:600 clamp(56px,6vw,84px)/1 var(--serif);color:var(--navy);letter-spacing:-.03em}
.stat b sup{font-size:.4em;color:var(--saffron);vertical-align:top;margin-left:2px}
.stat span{display:block;margin-top:14px;font-size:15px;color:var(--muted)}

/* journey */
.journey{background:var(--paper);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
.journey-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px}
.journey-intro{position:sticky;top:120px;align-self:start}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before,.tl-progress{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--stone)}
.tl-progress{background:linear-gradient(var(--teal),var(--saffron));transform-origin:top;z-index:1}
.timeline li{position:relative;padding:0 0 40px 44px}
.timeline li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--stone);z-index:2;transition:border-color .4s,background .4s,transform .4s}
.timeline li.on::before{border-color:var(--teal)}
.timeline li.key.on::before{border-color:var(--saffron);background:var(--saffron);transform:scale(1.25)}
.timeline .yr{font:600 24px/1 var(--serif);color:var(--saffron)}
.timeline h3{font-size:22px;margin:8px 0 6px}
.timeline p{margin:0;color:var(--muted);font-size:15px}

/* horizontal involvement */
.hscroll{padding:0;overflow:hidden}
.h-track{display:flex;gap:26px;padding:0 3.2vw;align-items:center;height:100svh;width:max-content}
.h-intro{width:min(440px,36vw);flex:none;padding-right:30px}
.hcard{flex:none;width:clamp(320px,30vw,420px);height:min(66svh,560px);border-radius:26px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;color:var(--navy)}
.hcard .no{font:600 88px/1 var(--serif);color:rgba(255,255,255,.75);letter-spacing:-.04em}
.hcard .org{font:600 12px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(15,42,58,.65)}
.hcard h3{font-size:clamp(26px,2.2vw,32px);margin:10px 0 16px}
.hcard ul{margin:0;padding:0;list-style:none}
.hcard li{padding:9px 0;border-top:1px solid rgba(15,42,58,.14);font-size:15px}
.hcard li::before{content:"•";color:var(--saffron);font-weight:700;margin-right:10px}
.c1{background:linear-gradient(160deg,#FDE9D3,#F5C08A)} .c2{background:linear-gradient(160deg,#E2F2F0,#A6D5CF)}
.c3{background:linear-gradient(160deg,#ECEFF8,#C3CDE8)} .c4{background:linear-gradient(160deg,#F8EBE0,#E7BE9E)}
.c5{background:linear-gradient(160deg,#EEF4E6,#C4DCAE)} .c6{background:linear-gradient(160deg,#F6EAF1,#DDB8CE)}
.c7{background:linear-gradient(160deg,#FFF3D6,#F2CF7E)}
.hcard .glow{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.45);filter:blur(40px);top:-20%;right:-20%;pointer-events:none}

/* journal */
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:34px 0 30px}
.chip{border:1.5px solid var(--stone);background:var(--paper);color:var(--ink);padding:9px 16px;border-radius:999px;font:500 14px var(--sans);cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--navy)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--ivory)}
.chip .n{opacity:.6;margin-left:4px;font-size:12px}
.search{margin-left:auto;position:relative}
.search input{font:15px var(--sans);padding:10px 16px 10px 38px;border:1.5px solid var(--stone);border-radius:999px;background:var(--paper);width:240px;color:var(--ink)}
.search input:focus{outline:none;border-color:var(--teal)}
.search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--paper);border:1px solid var(--stone);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -26px rgba(15,42,58,.45)}
.js.motion .card.enter{animation:cardIn .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(40px)}}
.card .img{aspect-ratio:16/10;background:linear-gradient(135deg,#F5C08A,#A6D5CF);position:relative;overflow:hidden}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.card:hover .img img{transform:scale(1.06)}
.card .img .ph{position:absolute;inset:0;display:grid;place-items:center;font:500 18px/1.3 var(--serif);color:var(--navy);padding:24px;text-align:center}
.card .fb{position:absolute;top:12px;left:12px;background:#fff;color:var(--navy);font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
.card .body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.meta{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted)}
.tag{font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:6px}
.tag.lead{background:#DCEDEE;color:var(--teal)} .tag.ent{background:#E2E8F5;color:#2E4A86}
.tag.talk{background:var(--saffron-soft);color:#9A5310} .tag.media{background:#ECE6F3;color:#5D3F86}
.tag.life{background:#E5EFE0;color:#3D6B2E}
.card h3{font-size:19px;line-height:1.3}
.card p{margin:0;font-size:14.5px;color:var(--muted)}
.more{text-align:center;margin-top:44px}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:40px}
.yearsel{font:500 14px var(--sans);padding:9px 34px 9px 16px;border:1.5px solid var(--stone);border-radius:999px;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235B6770' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center;appearance:none;color:var(--ink);cursor:pointer}
.yearsel:focus{outline:none;border-color:var(--teal)}
.card .n-ph{position:absolute;right:12px;bottom:12px;background:rgba(15,42,58,.75);color:#fff;font:600 11px var(--sans);padding:4px 9px;border-radius:999px}
.journal-count{font-size:14px;color:var(--muted);margin:-14px 0 22px}

/* speaking */
.speaking{background:var(--mist)}
.sp-head{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:end}
.sp-photo{border-radius:220px 220px 26px 26px;overflow:hidden;aspect-ratio:4/4.4;max-width:380px;justify-self:end;position:relative}
.sp-photo img{position:absolute;left:0;width:100%;height:120%;top:-10%;object-fit:cover}
.rows{margin-top:64px;border-top:1px solid rgba(15,42,58,.16)}
.srow{display:grid;grid-template-columns:90px 1fr 1.1fr 30px;gap:24px;align-items:center;padding:26px 8px;border-bottom:1px solid rgba(15,42,58,.16);position:relative;isolation:isolate}
.srow::before{content:"";position:absolute;inset:0;background:var(--paper);transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.2,.7,.2,1);z-index:-1}
.srow:hover::before{transform:scaleY(1)}
.srow .y{font:600 18px var(--sans);color:var(--saffron)}
.srow .city{font:500 clamp(30px,4vw,58px)/1 var(--serif);color:var(--navy);letter-spacing:-.02em;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.srow:hover .city{transform:translateX(14px);font-style:italic}
.srow .topic{color:var(--muted);font-size:15.5px}
.srow .arr{color:var(--teal);font-size:22px;transition:transform .35s}
.srow:hover .arr{transform:rotate(-45deg)}
.sp-preview{position:fixed;top:0;left:0;width:280px;aspect-ratio:4/3;border-radius:16px;overflow:hidden;pointer-events:none;z-index:60;opacity:0;visibility:hidden;box-shadow:0 30px 60px -20px rgba(15,42,58,.5)}
.sp-preview img{width:100%;height:100%;object-fit:cover}

/* publications */
.pubs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.pub{background:var(--paper);border:1px solid var(--stone);border-radius:var(--r);padding:30px}
.pub h3{font-size:24px;margin-bottom:14px}
.pub ul{list-style:none;margin:0;padding:0}
.pub li{padding:12px 0;border-top:1px solid var(--stone);font-size:15px}
.pub li small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.pub li[data-find]{cursor:pointer;transition:color .2s}
.pub li[data-find]:hover,.pub li[data-find]:focus-visible{color:var(--teal);outline:none}
.pub li a{text-decoration:none}
.pub li a:hover{color:var(--teal)}
.pub li[data-find]::after,.pub li a::after{content:" →";color:var(--saffron);opacity:0;transition:opacity .2s}
.pub li[data-find]:hover::after,.pub li a:hover::after{opacity:1}

/* beyond */
.beyond-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:16px;margin-top:48px}
.tile{position:relative;border-radius:var(--r);overflow:hidden;background:var(--saffron-soft);text-decoration:none}
.tile img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;transition:filter .5s}
.tile:hover img{filter:saturate(1.15) brightness(1.05)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,42,58,.8),rgba(15,42,58,0) 55%)}
.tile div{position:absolute;left:22px;right:22px;bottom:20px;z-index:1;color:#fff}
.tile b{font:600 22px/1.2 var(--serif);display:block}
.tile span{font-size:13.5px;color:#E3EAEE}
.tile.big{grid-column:span 2;grid-row:span 2}
.tile.wide{grid-column:span 2}

/* motto */
.motto{background:radial-gradient(ellipse at 30% 50%,var(--saffron-soft),var(--ivory) 65%);overflow:hidden}
.motto-grid{display:grid;grid-template-columns:auto 1fr;gap:80px;align-items:center}
.ring{position:relative;width:min(340px,70vw);aspect-ratio:1}
.ring .face{position:absolute;inset:16%;border-radius:50%;overflow:hidden}
.ring .face img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.ring svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 26s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.motto blockquote{font:400 clamp(32px,4.4vw,62px)/1.15 var(--serif);color:var(--navy);margin:0;letter-spacing:-.02em}
.motto cite{display:block;margin-top:24px;font:600 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);font-style:normal}

/* contact */
.contact{text-align:center;padding-bottom:90px}
.avatar{width:96px;height:96px;border-radius:50%;overflow:hidden;margin:0 auto 26px;box-shadow:0 0 0 6px var(--paper),0 0 0 7px var(--stone)}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.cta-big{font:600 clamp(64px,13vw,220px)/.9 var(--serif);letter-spacing:-.045em;color:var(--navy);margin:0}
.cta-big em{font-weight:400;color:var(--saffron)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px;text-align:left}
.cbox{background:var(--paper);border:1px solid var(--stone);border-radius:var(--r);padding:30px}
.cbox h3{font-size:22px;margin-bottom:8px}
.cbox p{color:var(--muted);font-size:15px;margin:0 0 20px}
.todo{display:inline-block;font-size:12px;background:#FFF4D6;color:#7A5A00;border:1px dashed #E0B84A;padding:3px 8px;border-radius:6px}

footer{border-top:1px solid var(--stone);padding:64px 0 40px;font-size:14px;color:var(--muted)}
.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
.foot-top{display:grid;grid-template-columns:1.6fr 1.2fr .8fr;gap:40px;padding-bottom:36px;margin-bottom:26px;border-bottom:1px solid var(--stone)}
.foot-top p{margin:16px 0 0;font:italic 400 22px/1.3 var(--serif);color:var(--navy)}
footer h4{font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:6px 0 16px}
.foot-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
.foot-nav.one{grid-template-columns:1fr}
.foot-nav a{text-decoration:none;color:var(--ink)}
.foot-nav a:hover{color:var(--teal)}

/* shared bits for the multi-page site */
.skip{position:absolute;left:12px;top:-60px;z-index:400;background:var(--navy);color:var(--ivory);padding:10px 16px;border-radius:8px;text-decoration:none}
.skip:focus{top:12px}
.m-only{display:none}
.nav ul a[aria-current="page"]::after{transform:scaleX(1)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;flex-wrap:wrap;margin-bottom:44px}
.sec-head .lede{margin:0}
.st-more{margin-top:34px}
a.srow{text-decoration:none;color:inherit}
.cta-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:44px}

/* inner page header */
.page-hero{position:relative;overflow:hidden;padding:180px 0 80px}
.page-hero .blobs{opacity:.5}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(46px,7.6vw,116px);font-weight:500;letter-spacing:-.035em;line-height:1.02;margin:20px 0 24px;max-width:15ch}
.page-hero .lede{margin:0}
.ph-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.journal-page{padding-top:0}
.journal-page .tools{margin-top:0}
.nojs-list{columns:2;gap:40px;font-size:15px}
.nojs-list li{margin-bottom:8px}

/* about */
.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:72px;align-items:center}
.about-hero h1{font-size:clamp(44px,6vw,92px);max-width:none}
.bio p{font-size:18px;line-height:1.7;margin:0 0 16px;max-width:640px}
.bio p:first-child{font:400 clamp(22px,2.2vw,28px)/1.4 var(--serif);color:var(--navy)}
.about-photo{margin:0;border-radius:240px 240px 28px 28px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 40px 80px -40px rgba(15,42,58,.55)}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.hon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.hon{background:var(--paper);border:1px solid var(--stone);border-radius:var(--r);padding:28px;position:relative;overflow:hidden}
.hon::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--saffron-soft)}
.hon .yr{position:relative;z-index:1;font:600 30px/1 var(--serif);color:var(--saffron)}
.hon h3{font-size:22px;margin:18px 0 8px}
.hon p{margin:0;color:var(--muted);font-size:14.5px}
.inv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.inv-grid .hcard{width:auto;height:auto;min-height:400px;gap:30px}

/* speaking page */
.sp-page .rows{margin-top:28px}
.topics-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.topics{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.topics li{font:400 clamp(20px,2vw,28px)/1 var(--serif);color:var(--navy);padding:18px 26px;border-radius:999px;background:var(--paper);border:1px solid var(--stone)}
.topics li:nth-child(3n+1){background:var(--saffron-soft);border-color:transparent}
.topics li:nth-child(3n+2){background:var(--teal-soft);border-color:transparent;font-style:italic}
.sp-recent{padding-top:0}
.pubs-page{padding-top:0}
.pubs-page .pubs{margin-top:0}
.contact-page{padding-top:170px}
.contact-page h1.eyebrow{margin:0}

/* post page */
.post-head{padding-top:160px;max-width:1040px;margin-left:auto;margin-right:auto}
.crumbs{display:flex;gap:10px;font-size:13.5px;color:var(--muted);margin-bottom:26px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--teal)}
.post-head h1{font-size:clamp(32px,4.4vw,58px);font-weight:500;letter-spacing:-.025em;line-height:1.1;margin:18px 0 14px}
.post-place{display:flex;gap:8px;align-items:center;margin:0;color:var(--muted);font-size:15px}
.approx{font-size:12px;color:var(--muted);border:1px dashed var(--stone);padding:3px 8px;border-radius:6px}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:10px;margin-top:44px}
.gallery a{position:relative;display:block;border-radius:14px;overflow:hidden;background:#EFE9DF;cursor:zoom-in}
.gallery a[hidden]{display:none}
.gallery img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gallery a:hover img{transform:scale(1.04)}
.gallery a:first-child{grid-column:span 2;grid-row:span 2}
.gallery.g-1{grid-template-columns:1fr;grid-auto-rows:auto}
.gallery.g-1 a:first-child{grid-column:auto;grid-row:auto;display:flex;justify-content:center}
.gallery.g-1 img{width:auto;max-width:100%;height:auto;max-height:78vh;object-fit:contain}
.gallery.g-2{grid-template-columns:1fr 1fr;grid-auto-rows:420px}
.gallery.g-2 a:first-child{grid-column:auto;grid-row:auto}
.gallery.g-3{grid-template-columns:2fr 1fr;grid-auto-rows:240px}
.gallery.g-3 a:first-child{grid-column:auto}
.more-ph{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,42,58,.6);color:#fff;font:600 28px var(--serif)}
.post-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:72px;max-width:1040px;padding-top:56px;padding-bottom:30px}
.post-body{font-size:18px;line-height:1.75;color:var(--ink)}
.post-body p{margin:0 0 18px}
.post-body a{color:var(--teal);word-break:break-word}
.post-body a.src-link{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:11px 20px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--navy);color:var(--navy);font-weight:600;font-size:15px;line-height:1.2;text-decoration:none;word-break:normal;transition:background .25s,color .25s}
.post-body a.src-link:hover{background:var(--navy);color:var(--ivory)}
.post-body .in-brief{padding:16px 20px;background:var(--paper);border-left:3px solid var(--saffron);border-radius:0 12px 12px 0;font-size:16.5px}
.post-body .in-brief strong{color:var(--teal);font-weight:600}
.post-body .video,.post-body .wp-block-embed{margin:0 0 20px}
.post-body .video{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000}
.post-body .video iframe,.post-body .wp-block-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.post-body .wp-block-embed iframe{border-radius:14px}
.post-body .wp-block-video{margin:0 0 20px}
.post-body .wp-block-video video{display:block;width:100%;height:auto;max-height:78vh;border-radius:14px;background:#000}
.card .n-vid{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:5px;background:rgba(15,42,58,.75);color:#fff;font:600 11px var(--sans);padding:4px 10px 4px 8px;border-radius:999px}
.card .n-vid::before{content:"";border-style:solid;border-width:4.5px 0 4.5px 7px;border-color:transparent transparent transparent #fff}
.post-side{align-self:start;position:sticky;top:110px;border-left:2px solid var(--saffron);padding-left:26px;font-size:14.5px;color:var(--muted)}
.post-side h4{font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0 0 10px}
.post-side p{margin:0 0 14px}
.post-side h4:not(:first-child){margin-top:26px}
.post-side a{color:var(--navy)}
.post-side .btn{padding:10px 18px;font-size:14px}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1040px;padding-top:20px}
.pn{display:block;text-decoration:none;padding:22px 26px;border:1px solid var(--stone);border-radius:var(--r);background:var(--paper);transition:border-color .25s,transform .35s}
.pn:hover{border-color:var(--navy);transform:translateY(-3px)}
.pn small{display:block;font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--saffron)}
.pn b{display:block;margin-top:10px;font:500 18px/1.35 var(--serif);color:var(--navy)}
.pn.next{text-align:right}
.related{padding:80px 0 110px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:300;background:rgba(9,22,31,.94);display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;padding:3vh 1vw}
.lb[hidden]{display:none}
.lb figure{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:0}
.lb img{max-width:100%;max-height:86vh;object-fit:contain;border-radius:8px}
.lb figcaption{color:#C9D3D8;font-size:13px;letter-spacing:.08em}
.lb-nav,.lb-x{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);background:none;color:#fff;font-size:20px;cursor:pointer;justify-self:center}
.lb-nav:hover,.lb-x:hover{border-color:#fff}
.lb-x{position:absolute;top:16px;right:16px;font-size:24px}
body.lb-open{overflow:hidden}

.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}*{animation:none!important;transition:none!important}}

@media (max-width:1100px){.nav ul{gap:18px}.nav ul a{font-size:13px}}
@media (min-width:901px) and (max-width:1200px){
  .hero-portrait{height:min(76svh,56vw);right:15vw}
  .intro{max-width:min(360px,34vw)}
}
@media (max-width:900px){
  .nav-right ul{position:absolute;top:76px;left:0;right:0;height:calc(100svh - 76px);display:flex;flex-direction:column;gap:0;margin:0;
    padding:12px 24px 40px;background:var(--ivory);border-top:1px solid var(--stone);overflow-y:auto;
    opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .35s,transform .5s cubic-bezier(.2,.7,.2,1),visibility .35s}
  .nav-right ul.open{opacity:1;visibility:visible;transform:none}
  .nav ul li{border-bottom:1px solid var(--stone)}
  .nav-right ul.open li{animation:menuIn .6s cubic-bezier(.2,.7,.2,1) both}
  .nav-right ul.open li:nth-child(2){animation-delay:.05s}
  .nav-right ul.open li:nth-child(3){animation-delay:.1s}
  .nav-right ul.open li:nth-child(4){animation-delay:.15s}
  .nav-right ul.open li:nth-child(5){animation-delay:.2s}
  .nav ul a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font:500 clamp(26px,7.4vw,34px)/1.1 var(--serif);letter-spacing:-.015em;color:var(--navy)}
  .nav ul a::after{content:"→";position:static;width:auto;height:auto;background:none;transform:none;font:400 20px var(--sans);color:var(--saffron)}
  .nav ul a[aria-current="page"]{color:var(--teal);font-style:italic}
  body.menu-open{overflow:hidden}
  body.menu-open header{background:var(--ivory);backdrop-filter:none;box-shadow:none}
  .menu-btn{display:block}
  .pill{display:none}
  .hero{display:flex;flex-direction:column;padding:96px 0 40px}
  .hero-portrait{position:relative;right:auto;bottom:auto;width:min(80vw,52svh);height:auto;margin:0 auto}
  .hero-copy{position:static;display:block;pointer-events:auto}
  .hero-name{margin:-10vw 0 0;padding:0 20px;font-size:clamp(56px,17vw,120px)}
  .hero-ui{position:static}
  .intro{max-width:none;padding:0 20px;margin:26px 0 0}
  .side,.cue{display:none}
  .journey-grid,.sp-head,.motto-grid{grid-template-columns:1fr;gap:40px}
  .journey-intro{position:static}
  .sp-photo{justify-self:start;max-width:300px}
  .now-card{grid-template-columns:1fr;gap:20px;padding:34px 28px}
  .now-card .btn{justify-self:start}
  .stats{grid-template-columns:repeat(2,1fr);gap:28px 20px}
  .grid,.pubs,.contact-grid{grid-template-columns:repeat(2,1fr)}
  .beyond-grid{grid-template-columns:repeat(2,1fr)}
  .hscroll{padding:100px 0 60px}
  .h-track{height:auto;width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 20px 20px;align-items:stretch;flex-wrap:nowrap}
  .h-intro{display:none}
  .hcard{scroll-snap-align:start;width:min(82vw,380px);height:auto;min-height:440px}
  .hs-head{display:block!important}
  .srow{grid-template-columns:60px 1fr;gap:6px 16px}
  .srow .topic{grid-column:2}.srow .arr{display:none}
  .nav-right ul .m-only{display:block}
  .about-grid,.topics-grid{grid-template-columns:1fr;gap:44px}
  .about-photo{max-width:420px}
  .hon-grid{grid-template-columns:repeat(2,1fr)}
  .inv-grid{grid-template-columns:repeat(2,1fr)}
  .post-layout{grid-template-columns:1fr;gap:36px}
  .post-side{position:static}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
  .gallery.g-2,.gallery.g-3{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
  .gallery.g-3 a:first-child{grid-column:span 2;grid-row:auto}
  .foot-top{grid-template-columns:1fr 1fr}
  .foot-top>div:first-child{grid-column:1/-1}
  .page-hero{padding:130px 0 56px}
  .post-head{padding-top:120px}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  section{padding:84px 0}
  .grid,.pubs,.contact-grid,.beyond-grid{grid-template-columns:1fr}
  .tile.big,.tile.wide{grid-column:auto;grid-row:auto}
  .search{margin-left:0;width:100%}.search input{width:100%}
  .brand b{font-size:16px}
  .now-card .date{font-size:64px}
  .hon-grid,.inv-grid,.post-nav{grid-template-columns:1fr}
  .pn.next{text-align:left}
  .post-body{font-size:17px}
  .gallery.g-1 img{max-height:60vh}
  .gallery.g-2{grid-auto-rows:160px}
  .lb{grid-template-columns:44px minmax(0,1fr) 44px;padding:0}
  .lb-nav{width:38px;height:38px;font-size:16px}
  .nojs-list{columns:1}
  .contact-page{padding-top:120px}
}
