:root{
  --paper:#f6f1e7;--paper2:#eee7da;--ink:#171717;--muted:#5f5b53;--navy:#223a5e;--rule:#cfc6b7;--max:1180px;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--navy)}img{max-width:100%;display:block}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.nav{position:sticky;top:0;z-index:20;background:rgba(246,241,231,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}.navin{height:66px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{font-size:12px;letter-spacing:.19em;font-weight:700}.navlinks{display:flex;gap:26px;align-items:center;font-size:14px}.navlinks a.ext{border-left:1px solid var(--rule);padding-left:26px;color:var(--muted)}.menu{display:none;background:none;border:0;font:inherit;text-transform:uppercase;letter-spacing:.13em;font-size:12px}.mobile{display:none;border-top:1px solid var(--rule)}.mobile a{display:block;padding:13px 0;border-bottom:1px solid var(--rule)}main{min-height:70vh}.hero{display:grid;grid-template-columns:1fr;gap:0;padding:92px 0 40px}.eyebrow,.label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}.hero h1,.pagehead h1{font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:1.02;margin:22px 0 0}.hero h1{font-size:clamp(48px,7vw,78px)}.pagehead{padding:82px 0 58px}.pagehead h1{font-size:clamp(46px,7vw,72px)}.lede{font-size:18px;line-height:1.75;max-width:650px;color:#2a2926;margin-top:30px}.actions{display:flex;gap:28px;margin-top:32px;font-size:14px}.under{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:#7d8da5}.section{border-top:1px solid var(--rule);padding:68px 0}.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:32px}.span5{grid-column:span 5}.span7{grid-column:span 7}.section h2{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.1;margin:0}.rows{margin-top:38px;border-top:1px solid var(--rule)}.row{display:grid;grid-template-columns:70px 1.2fr 2fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:start}.row h3{font-family:var(--serif);font-size:26px;line-height:1.18;margin:0;font-weight:400}.row p{margin:0;color:#393734}.meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.writingrow{grid-template-columns:1fr auto}.writingrow h3{font-size:28px}.case{grid-template-columns:190px 1fr 1fr}.notebook{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);margin-top:38px}.note{padding:28px 28px 28px 0;border-bottom:1px solid var(--rule)}.note h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:0}.note p{font-size:14px;color:#3e3b36}.box{border:1px solid var(--rule);padding:38px}.archive table{width:100%;border-collapse:collapse;font-size:14px}.archive th,.archive td{border-bottom:1px solid var(--rule);padding:13px 8px;text-align:left}.archive th{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.filters button{background:transparent;border:0;border-bottom:1px solid transparent;padding:5px 0;cursor:pointer;color:var(--muted)}.filters button.active,.filters button:hover{color:var(--ink);border-bottom-color:var(--ink)}.search{width:100%;max-width:420px;background:transparent;border:0;border-bottom:1px solid var(--rule);padding:10px 0;font:inherit}.search:focus{border-bottom-color:var(--navy)}.article{max-width:760px;margin:0 auto;padding:72px 0}.article .article-meta{margin-bottom:18px}.article h1{font-family:var(--serif);font-size:clamp(44px,7vw,68px);font-weight:400;line-height:1.03;letter-spacing:-.03em;margin:0 0 28px}.article h2{font-family:var(--serif);font-size:30px;font-weight:400;margin:52px 0 16px}.article p{font-size:18px;line-height:1.82;color:#2f2d29}.quote{font-family:var(--serif);font-size:30px!important;line-height:1.4!important;border-left:1px solid var(--navy);padding-left:24px;margin:42px 0}.callout{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper2);padding:22px;margin:38px 0}.flow{display:flex;align-items:center;gap:12px;overflow:auto;padding:18px 0}.flow span{border:1px solid var(--ink);padding:12px 15px;white-space:nowrap;font-size:13px}.flow i{font-style:normal;color:var(--muted)}.casepage{padding:72px 0}.casepage h1{font-family:var(--serif);font-size:60px;font-weight:400;line-height:1;margin:16px 0}.casepage .metric{font-family:var(--serif);font-size:34px;margin:26px 0 14px}.casegrid{display:grid;grid-template-columns:1fr 2fr;gap:32px;border-top:1px solid var(--rule);padding:28px 0}.casegrid h2{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-family:var(--sans)}.casegrid p{font-size:17px;margin:0}.footer{margin-top:80px;border-top:1px solid var(--rule)}.footin{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding:52px 0}.footer .tag{font-family:var(--serif);font-size:22px}.footer ul{list-style:none;padding:0;margin:14px 0 0}.footer li{margin:7px 0;font-size:14px}.copyright{border-top:1px solid var(--rule);font-size:12px;color:var(--muted);padding:18px 0}
@media(max-width:800px){.navlinks{display:none}.menu{display:block}.mobile.open{display:block}.hero{grid-template-columns:1fr;padding:62px 0}.grid12{grid-template-columns:1fr}.span5,.span7{grid-column:auto}.row,.case{grid-template-columns:1fr;gap:8px}.writingrow{grid-template-columns:1fr}.notebook{grid-template-columns:1fr}.footin{grid-template-columns:1fr}.casegrid{grid-template-columns:1fr;gap:6px}.article p{font-size:17px}.wrap{width:min(var(--max),calc(100% - 28px))}}

/* --- accessibility additions --- */
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:50;background:var(--ink);color:var(--paper);padding:11px 18px;font-size:14px}
.skip-link:focus{left:12px;top:12px;color:var(--paper)}
main:focus{outline:none}
.navlinks a[aria-current="page"],.mobile a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.noresults{color:var(--muted);font-size:15px;padding:22px 0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* --- illustrations --- */
.hero-art{margin-top:52px;border-top:1px solid var(--rule);padding-top:30px}
.hero-art img{width:100%;height:auto;mix-blend-mode:multiply}
.illus{margin:38px 0 6px;padding:0}
.illus img{width:100%;height:auto;mix-blend-mode:multiply}
.casepage .illus{margin:0 0 44px}
@media(max-width:800px){.hero-art{margin-top:34px}.illus{margin:30px 0 4px}}

/* one hand-drawn mark, used only on inline read-more links */
.under::after{content:"";display:inline-block;width:22px;height:8px;margin-left:9px;
 background:url(/assets/img/mark-arrow.png) no-repeat center/contain;opacity:.7}
.under:hover::after{opacity:1}

/* --- principles / now rows --- */
.principlerow{grid-template-columns:62px 1fr 1.5fr}
.principlerow.compact{grid-template-columns:62px 1fr}
.principlerow h3{font-size:23px}
.nowrow{grid-template-columns:190px 1fr}
.nowrow p{font-size:17px}
.more{margin:26px 0 0;font-size:14px}
.grid12>.more{grid-column:1/-1}

/* --- explanatory diagrams --- */
.figdiagram{margin:34px 0 8px;padding:0;overflow-x:auto}
.figdiagram svg.diagram{display:block;width:100%;min-width:640px;height:auto}
.figdiagram figcaption{margin-top:12px;font-size:13px;line-height:1.6;color:var(--muted);max-width:60ch}

@media(max-width:800px){
  .principlerow,.nowrow{grid-template-columns:1fr;gap:8px}
  .principlerow h3{font-size:21px}
}

/* --- essay links from principles and idea hubs --- */
.essaylink{margin:14px 0 0;font-size:14px}
.principlerow .essaylink{grid-column:3}
.hubessays{margin-top:56px;border-top:1px solid var(--rule);padding-top:30px}
.hubessays .rows{margin-top:18px}
.hubessays .row{padding:20px 0}
.hubessays h3{font-size:22px}
@media(max-width:800px){.principlerow .essaylink{grid-column:1}}
/* index-page rows use h2 so the heading order does not skip a level; they must keep the row scale, not the section scale */
.row h2{font-family:var(--serif);font-size:26px;line-height:1.18;margin:0;font-weight:400}
.writingrow h2{font-size:28px}
.principlerow h2{font-size:23px}
.hubessays h2{font-size:22px}
@media(max-width:800px){.principlerow h2{font-size:21px}}
.casepage .econ{margin:0 0 50px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

.portrait{margin:34px 0 0;max-width:340px}
.portrait img{width:100%;height:auto;border:1px solid var(--rule)}
@media(max-width:800px){.portrait{margin:26px 0 4px;max-width:260px}}

/* --- expanded case studies --- */
.casebody p{font-size:17px;margin:0 0 14px}
.casebody p:last-child{margin-bottom:0}
.casepage .bignum{font-family:var(--serif);font-size:30px;line-height:1.2;margin:0 0 14px}
.caserelated{border-top:1px solid var(--rule);padding:28px 0}
.caserelated p{margin:12px 0 0;font-size:15px}
.caseend{border-top:1px solid var(--rule);margin-top:20px;padding:48px 0 0}
.caseend .lede{margin-top:16px;margin-bottom:24px}
mark.tk{background:#fdf2c4;color:#5a4a12;padding:1px 5px;border-bottom:1px dashed #b39a3c;font-size:.94em}
.confnote{border-top:1px solid var(--rule);padding-top:22px;margin:10px 0 0;font-size:14px;color:var(--muted);max-width:640px}
/* homepage section illustrations: full width, capped so they punctuate rather than dominate */
.sectionillus{margin:44px 0 0}
.sectionillus img{display:block;width:100%;max-width:820px;height:auto;margin-inline:auto;mix-blend-mode:multiply}
@media(max-width:800px){.sectionillus{margin:32px 0 0}}

/* homepage principles: each row is a link, so hover and keyboard focus both
   reveal the snippet. On touch widths there is no hover, so it is always shown. */
.principlerow.compact{grid-template-columns:62px 1fr}
.principlerow.compact .snip{grid-column:2;margin:0;max-height:0;opacity:0;overflow:hidden;
  color:var(--muted);font-size:15px;line-height:1.6;
  transition:max-height .26s ease,opacity .26s ease,margin-top .26s ease}
.principlerow.compact:hover .snip,
.principlerow.compact:focus-visible .snip,
.principlerow.compact:focus-within .snip{max-height:5em;opacity:1;margin-top:10px}
.principlerow.compact:hover h3{color:var(--navy)}
@media(max-width:800px){
  .principlerow.compact .snip{max-height:none;opacity:1;margin-top:8px;transition:none}
}

/* notebook entries: real links, with the reveal on hover and keyboard focus */
.note{display:block}
.note .notemore{display:block;max-height:0;opacity:0;overflow:hidden;margin-top:0;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);
  transition:max-height .26s ease,opacity .26s ease,margin-top .26s ease}
.note:hover .notemore,.note:focus-visible .notemore{max-height:3em;opacity:1;margin-top:14px}
.note:hover h3,.note:focus-visible h3{color:var(--navy)}
@media(max-width:800px){
  .note .notemore{max-height:none;opacity:1;margin-top:12px;transition:none}
}

/* suggested reading grid at the foot of an article */
.suggest{margin-top:64px;border-top:1px solid var(--rule);padding-top:30px}
.suggestgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:22px}
.suggestcard{display:block}
.suggestcard .shot{display:block;border:1px solid var(--rule);overflow:hidden;background:var(--paper)}
.suggestcard .shot img{width:100%;height:auto;display:block;mix-blend-mode:multiply;
  transition:transform .3s ease}
.suggestcard:hover .shot img,.suggestcard:focus-visible .shot img{transform:scale(1.02)}
.suggestcard h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.22;
  margin:14px 0 0;letter-spacing:-.01em}
.suggestcard:hover h3,.suggestcard:focus-visible h3{color:var(--navy)}
.suggestcard .meta{margin-top:8px}
@media(max-width:800px){
  .suggestgrid{grid-template-columns:1fr;gap:32px}
  .suggest{margin-top:48px}
}

/* field notes: a three column feed. Hairline separation rather than cards,
   and the whole note lifts on hover or keyboard focus. */
.fnotes{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule)}
.fnote{background:var(--paper);padding:26px 24px 28px;border-bottom:1px solid var(--rule);transition:background .2s ease}
.fnote:not(:nth-child(3n)){border-right:1px solid var(--rule)}
.fnote h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;margin:0 0 10px;
  transition:color .2s ease}
.fnote p{margin:0;font-size:15px;line-height:1.65;color:#3e3b36}
.fnote:hover,.fnote:focus-within{background:var(--paper2)}
.fnote:hover h3,.fnote:focus-within h3{color:var(--navy)}
@media(max-width:1000px){.fnotes{grid-template-columns:repeat(2,1fr)}
  .fnote:not(:nth-child(3n)){border-right:0}
  .fnote:not(:nth-child(2n)){border-right:1px solid var(--rule)}}
@media(max-width:700px){.fnotes{grid-template-columns:1fr}.fnote{padding:24px 0 26px}
  .fnote:not(:nth-child(2n)),.fnote:not(:nth-child(3n)){border-right:0}}
.fgroup{margin:0 0 54px}
.fgrouplabel{margin:0 0 14px;font-family:var(--sans)}
.fnotes{margin:0}

/* grouped navigation: opens on hover for pointers, on click or Enter for
   keyboard, and closes on Escape or an outside click. Never hover-only. */
.navgroup{position:relative}
.navtop{background:none;border:0;font:inherit;font-size:14px;color:inherit;cursor:pointer;
  padding:0;display:inline-flex;align-items:center;gap:6px}
.navtop::after{content:"";width:5px;height:5px;border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55}
.navtop:hover,.navgroup:hover .navtop,.navtop[aria-expanded="true"]{color:var(--navy)}
.navmenu{position:absolute;top:100%;left:-16px;min-width:186px;z-index:30;
  background:var(--paper);border:1px solid var(--rule);padding:8px 0;margin-top:14px;
  display:none}
.navmenu a{display:block;padding:8px 18px;font-size:14px;white-space:nowrap}
.navmenu a:hover{background:var(--paper2);color:var(--navy)}
.navgroup:hover .navmenu,.navgroup:focus-within .navmenu,.navmenu.open{display:block}
/* keeps the pointer from falling through the gap between trigger and menu */
.navgroup::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px}
@media(max-width:800px){.navgroup,.navmenu{display:none}}

/* one proof line under the homepage hero, above the fold */
.heroproof{margin:26px 0 0;max-width:620px;font-size:15px;line-height:1.7;color:var(--muted);
  border-top:1px solid var(--rule);padding-top:18px}
@media(max-width:800px){.heroproof{font-size:14px;margin-top:22px}}
