@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,500;1,600&display=swap');
:root{--bg:#171b18;--surface:#202720;--ink:#f1f2de;--yellow:#e6fa54;--muted:#b4bba9;--line:#3d4639}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 'DM Sans',sans-serif}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--yellow);outline-offset:6px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500;line-height:1.1}h2{font-size:clamp(38px,4.7vw,67px);letter-spacing:-2px;margin-bottom:0}h2 em,h1 em{font-family:'Playfair Display',Georgia,serif;font-weight:500;color:var(--yellow);line-height:1.18}p{margin-bottom:20px}.wrap{width:100%;max-width:1440px;padding-left:6vw;padding-right:6vw;margin:auto}.eyebrow{font-size:12px;font-weight:500;letter-spacing:1.8px;margin:0 0 25px;text-transform:uppercase;color:var(--muted)}header{height:100px;padding:20px 4vw;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:30;border-bottom:1px solid #39433366;background:var(--bg)}.wordmark{font-size:22px;line-height:1;letter-spacing:-1px;font-weight:600}.wordmark span{color:var(--yellow);display:block;margin-top:4px}.header-actions{display:flex;gap:23px;align-items:center}.nav-journal{font-size:14px}.resume-button{background:var(--yellow);color:var(--bg);font-size:12px;font-weight:700;padding:14px 20px;border-radius:4px;letter-spacing:1px}.menu-toggle{width:48px;height:48px;border:1px solid #78806f;color:var(--ink);background:transparent;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;z-index:32}.menu-toggle span{height:2px;width:20px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}nav{position:fixed;inset:0;z-index:31;display:flex;flex-direction:column;justify-content:center;padding:100px 12vw 60px;background:var(--bg)}nav a{font-size:clamp(35px,5.7vw,78px);line-height:1.35;padding:6px 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);letter-spacing:-2px}nav a:hover{color:var(--yellow)}nav small{font-size:12px;letter-spacing:0;align-self:center}.hero{position:relative;max-width:1600px;margin:auto;min-height:760px;display:grid;grid-template-columns:1fr 1fr;padding:45px 5vw 90px;align-items:center;gap:15px;overflow:hidden}.hero-intro{position:relative;z-index:2;padding-left:1vw}.hero-intro .eyebrow{font-size:11px;letter-spacing:1.3px}.hero h1{font-size:clamp(75px,8.6vw,135px);letter-spacing:-6px;line-height:.9;margin:35px 0 30px}.hero h1 em{display:inline-block;line-height:1.13}.hero-description{font-size:21px;color:var(--muted);line-height:1.45}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:14px 22px;font-size:14px;font-weight:600;transition:transform .2s}.button:hover{transform:translateY(-3px)}.primary{background:var(--yellow);color:var(--bg)}.outline{border:1px solid #7e8a73}.text-link{font-size:14px;border-bottom:1px solid #7c8a71;display:inline-block;padding-bottom:5px}.text-link:hover{color:var(--yellow)}.text-link span{font-size:10px;margin-left:9px}.portrait-wrap{perspective:1100px;position:relative;max-width:650px}.portrait-stage{width:100%;aspect-ratio:1;position:relative;overflow:hidden;border-radius:8px;transform:rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .16s ease-out;box-shadow:0 25px 75px #0006;border:1px solid #48533b;touch-action:pan-y;isolation:isolate}.portrait-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.portrait-blueprint{clip-path:circle(0 at var(--mx,50%) var(--my,45%));transition:clip-path .22s ease}.portrait-stage.scanning .portrait-blueprint{clip-path:circle(125px at var(--mx,50%) var(--my,45%))}.portrait-stage.blueprint-on .portrait-blueprint{clip-path:circle(150% at 50% 50%)}.portrait-cross{position:absolute;right:17px;top:8px;color:var(--yellow);font-size:25px}.portrait-coordinate{position:absolute;left:20px;bottom:18px;background:#171b18bb;padding:4px 9px;font-size:10px;letter-spacing:1.4px;color:var(--yellow)}.portrait-controls{display:flex;justify-content:space-between;gap:15px;align-items:center;padding-top:20px}.portrait-controls>span{font-size:9px;letter-spacing:1.3px;color:var(--muted)}.portrait-controls button{background:transparent;border:1px solid #718357;border-radius:4px;padding:8px 12px;color:var(--yellow);font-size:12px;white-space:nowrap}.hero-footer{position:absolute;bottom:24px;left:6vw;right:6vw;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:19px;font-size:10px;letter-spacing:1px;color:var(--muted)}.interest-strip{display:flex;justify-content:space-around;gap:20px;background:var(--yellow);color:var(--bg);padding:22px 5vw;font-size:12px;letter-spacing:2px;font-weight:600}.manifesto{padding:100px 10vw;max-width:1600px;margin:auto}.manifesto h2{font-size:clamp(45px,6.2vw,90px)}.manifesto-note{display:flex;justify-content:space-between;gap:50px;margin-top:40px;border-top:1px solid var(--line);padding-top:30px}.manifesto-note>span{font-size:11px;letter-spacing:1.5px;color:var(--yellow)}.manifesto-note p{max-width:650px;font-size:20px;color:var(--muted);margin:0}.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;background:var(--surface);padding-top:40px;padding-bottom:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.proof>div{border-left:1px solid var(--line);padding-left:30px}.proof>div:first-child{padding-left:0;border:0}.proof strong{font-size:clamp(50px,6vw,85px);line-height:1.1;letter-spacing:-4px;font-weight:500;color:var(--yellow)}.proof strong span{font-size:.7em}.proof p{font-size:14px;line-height:1.5;color:var(--muted);margin:12px 0 0}.section{padding-top:100px;padding-bottom:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:45px}.section-heading>p{max-width:330px;color:var(--muted);margin:0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0}.filters button{border:1px solid #616b55;border-radius:30px;background:none;color:var(--muted);padding:9px 17px;font-size:14px}.filters button.active{background:var(--yellow);color:var(--bg);border-color:var(--yellow)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.work-card{border:1px solid var(--line);border-radius:5px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);transition:transform .25s}.work-card:hover{transform:translateY(-4px)}.card-body{padding:30px;flex:1}.card-meta{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:35px}.work-card h3{font-size:30px;letter-spacing:-1px;line-height:1.18;margin-bottom:20px}.work-card p{color:var(--muted)}.card-metric{border-top:1px solid var(--line);padding-top:22px;display:flex;flex-direction:column;gap:12px}.card-metric strong{font-size:clamp(42px,4.6vw,65px);font-weight:500;color:var(--yellow);letter-spacing:-2px;line-height:1.1}.card-metric span{font-size:14px;line-height:1.5;color:var(--muted)}.card-open{border:0;border-top:1px solid var(--line);padding:17px 30px;display:flex;justify-content:space-between;align-items:center;background:transparent;color:var(--ink);font-size:14px}.card-open:hover{background:#303b29}.card-open span{font-size:24px;color:var(--yellow)}.results-note{font-size:12px;color:var(--muted);margin-top:20px}.approach{background:var(--yellow);color:var(--bg);padding:90px 0}.approach .eyebrow,.approach h2 em{color:#3e4c1c}.approach-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.approach h2{font-size:clamp(42px,5vw,68px)}.approach-inner>div>p:last-child{margin:30px 0 0;max-width:400px}.approach ol{list-style:none;padding:0;margin:0}.approach li{display:flex;gap:25px;padding:23px 0;border-bottom:1px solid #7c8b40}.approach li:first-child{padding-top:0}.approach li>span{font-size:12px;padding-top:6px}.approach h3{font-size:22px;line-height:1.3;margin-bottom:12px}.approach li p{margin:0;font-size:15px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.story-lead{font-size:23px;line-height:1.5;margin:30px 0 20px}.story-grid>div>p:not(.story-lead){color:var(--muted)}.timeline{padding-top:10px}.timeline article{padding:25px 0;border-top:1px solid var(--line)}.timeline span{color:var(--yellow);font-size:11px;letter-spacing:1px}.timeline h3{font-size:28px;margin:10px 0;letter-spacing:-1px}.timeline p{margin:0;font-size:15px}.timeline small{display:block;color:var(--muted);font-size:13px;margin-top:7px}.research{border-top:1px solid var(--line)}.research-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.research-grid article{border-top:1px solid #687653;padding-top:28px}.tag{font-size:11px;letter-spacing:1px;color:var(--yellow)}.research h3{font-size:29px;line-height:1.2;letter-spacing:-.5px;margin:22px 0}.research article p{color:var(--muted)}.toolkit{padding-top:25px}.toolkit-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.toolkit h2{font-size:clamp(34px,4vw,52px)}.chips{display:flex;flex-wrap:wrap;gap:10px}.chips span{border:1px solid #58654b;border-radius:3px;padding:7px 14px;font-size:14px}.toolkit-grid p{font-size:14px;line-height:1.9;color:var(--muted);margin:22px 0 0}.journal-preview{border-top:1px solid var(--line)}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.journal-card{background:var(--surface);padding:30px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:5px;min-height:330px;transition:transform .25s,border-color .25s}.journal-card:hover{transform:translateY(-5px);border-color:var(--yellow)}.journal-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:var(--yellow);margin-bottom:35px;text-transform:uppercase}.journal-card h3{font-size:30px;letter-spacing:-1px;line-height:1.15;margin-bottom:20px}.journal-card p{color:var(--muted);font-size:15px}.read-label{border-top:1px solid var(--line);padding-top:16px;margin-top:auto;font-size:11px;letter-spacing:1px;display:flex;justify-content:space-between}.read-label>span{font-size:19px;line-height:1;color:var(--yellow)}.journal-more{margin-top:30px}.people-section{background:#252f20;padding:100px 0}.people-section h2{font-size:clamp(43px,5.5vw,76px)}.people-intro{max-width:670px;font-size:21px;color:#c3ccba;margin:30px 0 50px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.people-grid article{border-top:1px solid #73805f;padding-top:25px}.people-grid span{font-size:11px;color:var(--yellow);letter-spacing:1.5px}.people-grid h3{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:28px;margin:18px 0;line-height:1.3}.people-grid p{color:#bfc9b6}.people-signoff{font-size:20px;margin:45px 0 0}.people-signoff span{color:var(--yellow);font-family:Georgia,serif;font-style:italic;white-space:nowrap}.contact{padding:100px 0 70px}.contact h2{font-size:clamp(44px,6vw,85px)}.contact-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:40px}.contact-bottom p{max-width:480px;color:var(--muted);margin:0}.contact-bottom>div{display:flex;gap:14px}footer{border-top:1px solid var(--line);padding-top:30px;padding-bottom:30px;display:flex;justify-content:space-between;gap:20px;align-items:center}.footer-name{font-size:15px;letter-spacing:1px}footer>span,footer>a:last-child{font-size:11px;color:var(--muted)}dialog{width:calc(100% - 32px);max-width:780px;max-height:85vh;border:1px solid #727e60;background:var(--surface);color:var(--ink);padding:50px;border-radius:7px}dialog::backdrop{background:#070d09d1;backdrop-filter:blur(6px)}dialog h2{font-size:39px;margin:15px 0 30px}dialog h3{font-size:21px;color:var(--yellow);margin:24px 0 12px}dialog p{color:var(--muted)}.close{position:absolute;right:12px;top:8px;width:40px;height:40px;background:none;border:0;color:var(--ink);font-size:30px}.skip{position:fixed;top:-80px;left:15px;background:var(--yellow);color:var(--bg);padding:10px;z-index:100}.skip:focus{top:12px}.reading-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--yellow);z-index:90}[hidden]{display:none!important}.reveal{transition:opacity .7s,transform .7s}.reveal.pending{opacity:0;transform:translateY(26px)}
/* Journal and reading pages */
.journal-hero{padding-top:80px;padding-bottom:45px}.journal-hero h1{font-size:clamp(67px,9vw,128px);letter-spacing:-5px;line-height:.95;margin:25px 0 35px}.journal-hero>p:not(.eyebrow){max-width:650px;font-size:20px;color:var(--muted)}.journal-intro-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:25px;margin-top:40px;font-size:10px;letter-spacing:1px;color:var(--muted)}.journal-list{padding-bottom:100px}.filter-count{font-size:12px;color:var(--muted)}.curiosity-section{background:#20271f;padding:90px 0}.interest-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.interest{border-top:1px solid #657053;padding:30px 0 10px;display:flex;flex-direction:column}.interest-label{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1px;margin-bottom:25px;color:var(--yellow)}.interest h3{font-size:31px;letter-spacing:-1px;line-height:1.15;margin-bottom:20px}.interest p{color:var(--muted);max-width:480px}.interest-foot{font-size:12px;color:#c4cdaa;margin-top:auto;padding-top:5px}.beginner-label{color:var(--yellow);margin-right:10px}.book-label{font-size:10px;letter-spacing:1px;color:var(--yellow)}.book-author{font-size:13px}.learning-note{display:flex;justify-content:space-between;gap:45px;border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.learning-note span{font-size:11px;letter-spacing:1px}.learning-note p{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:24px;max-width:580px;color:var(--yellow);margin:0}.article-hero{padding-top:65px;padding-bottom:60px;border-bottom:1px solid var(--line)}.article-hero>.text-link{margin-bottom:40px}.article-hero h1{max-width:1080px;font-size:clamp(42px,5.7vw,79px);letter-spacing:-2.8px;line-height:1.08;margin:25px 0}.article-dek{max-width:770px;font-size:21px;color:var(--muted)}.article-byline{font-size:13px;color:var(--muted)}.article-byline span{margin:0 12px;color:var(--yellow)}.article-layout{display:grid;grid-template-columns:240px minmax(0,760px);gap:75px;padding-top:70px;padding-bottom:70px;justify-content:center}.article-aside{align-self:start;position:sticky;top:40px;display:flex;flex-direction:column;gap:18px}.article-aside>span{font-size:11px;letter-spacing:1.5px;color:var(--yellow);margin-bottom:10px}.article-aside a{font-size:13px;color:var(--muted);line-height:1.5}.article-aside a:hover{color:var(--yellow)}.article-body section{margin-bottom:45px;scroll-margin-top:45px}.article-body h2{font-size:29px;line-height:1.2;letter-spacing:-.5px;margin-bottom:20px}.article-body p{font-size:18px;line-height:1.9;color:#c4cbbe}.article-body p a{font-size:13px;display:block;margin-top:14px;color:var(--yellow);text-decoration:underline;text-underline-offset:4px}.article-body blockquote{margin:50px 0;padding:25px 0 25px 28px;border-left:2px solid var(--yellow);font:italic 30px/1.45 'Playfair Display',Georgia,serif;color:var(--yellow)}.article-end{border-top:1px solid var(--line);padding-top:25px}.article-end p{font-size:16px}.next-note{padding-top:50px;padding-bottom:75px;border-top:1px solid var(--line)}.next-note h2{max-width:800px;font-size:36px;margin-bottom:25px;line-height:1.2}
@media(max-width:1050px){.hero{min-height:660px;padding-top:30px}.hero h1{font-size:90px}.hero-description{font-size:18px}.hero-actions{gap:18px;flex-wrap:wrap}.portrait-controls>span{font-size:8px;letter-spacing:.5px}.portrait-controls button{font-size:11px;padding:7px 10px}.section{padding-top:75px;padding-bottom:75px}.story-grid,.approach-inner{gap:50px}.section-heading{gap:35px}.work-card h3,.journal-card h3{font-size:27px}.card-body,.journal-card{padding:25px}.people-grid{gap:25px}.people-grid h3{font-size:25px}.article-layout{grid-template-columns:190px minmax(0,1fr);gap:45px}.article-hero h1{font-size:58px}.toolkit-grid{gap:40px}}
@media(max-width:700px){.wrap{padding-left:22px;padding-right:22px}header{height:84px;padding:18px 22px}.wordmark{font-size:19px}.header-actions{gap:12px}.nav-journal{display:none}.resume-button{padding:12px 15px;font-size:10px}.menu-toggle{width:42px;height:42px}.hero{padding:35px 22px 82px;display:flex;flex-direction:column;gap:30px;align-items:stretch;min-height:0}.hero-intro{padding:0}.hero-intro .eyebrow{font-size:10px}.hero h1{font-size:79px;letter-spacing:-4px;margin:22px 0}.hero-description{font-size:18px;line-height:1.4}.hero-actions{margin-top:20px;gap:20px}.hero-actions .text-link{font-size:13px}.portrait-wrap{width:100%;max-width:500px;margin:auto}.portrait-controls>span{font-size:8px}.hero-footer{left:22px;right:22px;font-size:8px;letter-spacing:.5px}.hero-footer>span:last-child{display:none}.interest-strip{flex-wrap:wrap;gap:12px 24px;font-size:10px;padding:20px}.manifesto{padding:65px 22px}.manifesto h2{font-size:43px;letter-spacing:-1.5px}.manifesto-note{flex-direction:column;gap:20px;margin-top:30px}.manifesto-note p{font-size:18px}.proof{padding-top:30px;padding-bottom:30px;gap:14px}.proof>div{padding-left:12px}.proof strong{font-size:35px;letter-spacing:-1.5px}.proof p{font-size:11px}.proof p br{display:none}h2{font-size:42px;letter-spacing:-1.5px}.section{padding-top:65px;padding-bottom:65px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:25px;max-width:none}.eyebrow{font-size:10px}.filters{gap:8px}.filters button{font-size:12px;padding:8px 13px}.work-grid,.journal-grid,.story-grid,.approach-inner,.research-grid,.toolkit-grid,.interest-grid,.people-grid{grid-template-columns:1fr}.card-body{padding:25px}.card-meta{font-size:9px;letter-spacing:.5px}.work-card h3{font-size:29px}.card-metric strong{font-size:46px}.card-open{padding:15px 25px}.approach{padding:60px 0}.approach-inner{gap:35px}.approach h2{font-size:42px}.story-grid{gap:35px}.story-lead{font-size:21px}.timeline h3{font-size:26px}.research-grid{gap:40px}.research h3{font-size:27px}.toolkit h2{font-size:35px}.toolkit-grid{gap:30px}.journal-card{min-height:285px}.journal-card h3{font-size:29px}.people-section{padding:65px 0}.people-section h2{font-size:43px}.people-intro{font-size:19px;margin-bottom:35px}.people-grid{gap:20px}.people-grid h3{font-size:29px}.people-signoff{font-size:18px}.contact{padding:65px 0}.contact h2{font-size:43px}.contact-bottom{flex-direction:column;align-items:flex-start;gap:30px;margin-top:30px}.contact-bottom p{font-size:15px}footer{flex-wrap:wrap;padding-top:25px;padding-bottom:25px}footer>span{display:none}.footer-name{font-size:12px}footer>a:last-child{font-size:9px}nav{padding:95px 25px 45px}nav a{font-size:42px;line-height:1.45;letter-spacing:-1px}dialog{padding:40px 25px}dialog h2{font-size:31px}.journal-hero{padding-top:55px}.journal-hero h1{font-size:65px;letter-spacing:-3px}.journal-hero>p:not(.eyebrow){font-size:18px}.journal-intro-bottom{font-size:9px;gap:25px}.journal-intro-bottom>span:last-child{display:none}.curiosity-section{padding:60px 0}.interest h3{font-size:29px}.learning-note{flex-direction:column;gap:20px}.article-hero{padding-top:40px;padding-bottom:40px}.article-hero h1{font-size:43px;letter-spacing:-1.7px}.article-dek{font-size:18px}.article-layout{display:block;padding-top:40px;padding-bottom:45px}.article-aside{display:none}.article-body h2{font-size:27px}.article-body p{font-size:17px;line-height:1.85}.article-body blockquote{font-size:25px;padding-left:20px}.next-note h2{font-size:29px}.portrait-stage.scanning .portrait-blueprint{clip-path:circle(95px at var(--mx,50%) var(--my,45%))}.portrait-stage.blueprint-on .portrait-blueprint{clip-path:circle(150% at 50% 50%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal.pending{opacity:1;transform:none}.portrait-stage{transform:none!important}}
/* --- journal art (make_art.py) --- */
.article-art{margin:0 auto;padding-top:48px}
.article-art img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.card-art{display:block;width:calc(100% + 60px);max-width:none;height:auto;aspect-ratio:1200/520;margin:-30px -30px 26px;border-radius:5px 5px 0 0;border-bottom:1px solid var(--line)}
@media(max-width:1050px){.card-art{width:calc(100% + 50px);margin:-25px -25px 22px}}
@media(max-width:700px){.article-art{padding-top:30px}}
