:root{--paper:#f4f6f8;--paper-muted:#edf1f5;--panel:#e2e8ef;--ink:#14253a;--ink-soft:#41556c;--muted:#526878;--line:#a9b8c7;--line-soft:#d2dce6;--accent:#2457a6;--white:#fff;--sans:"Avenir Next", Avenir, "Helvetica Neue", Helvetica, sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--shell:min(1180px, calc(100% - 48px));--narrow:min(760px, calc(100% - 48px))}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--sans);scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0;font-size:1rem;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}::selection{color:var(--white);background:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--sans);letter-spacing:-.055em;font-weight:700;line-height:.98}h1{font-size:clamp(3rem,6.2vw,5.8rem)}h2{font-size:clamp(2rem,4.2vw,3.8rem)}h3{font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.15}.shell{width:var(--shell);margin-inline:auto}.shell-narrow{width:var(--narrow);margin-inline:auto}.skip-link{z-index:100;color:var(--white);background:var(--ink);padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line-soft);background:var(--paper)}.topbar{border-inline:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;min-height:66px;padding-inline:30px;display:grid}.wordmark{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-self:start;font-size:.72rem;font-weight:800;text-decoration:none}.wordmark span{color:var(--muted)}.format-nav ul,.identity-inner nav,.footer-links{align-items:center;margin:0;padding:0;list-style:none;display:flex}.format-nav ul{gap:clamp(24px,3vw,42px)}.format-nav a,.identity-inner,.subscribe-link,.footer-links a{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;font-size:.66rem;font-weight:700;text-decoration:none}.format-nav a{border-bottom:3px solid #0000;align-items:center;min-height:66px;display:inline-flex}.format-nav a[aria-current=page]{border-color:var(--accent);color:var(--accent)}.subscribe-link{border:1px solid var(--accent);color:var(--accent);justify-self:end;padding:8px 12px}.subscribe-link:hover{color:var(--white);background:var(--accent)}.identity-strip{border-top:1px solid var(--line-soft)}.identity-inner{border-inline:1px solid var(--line);min-height:38px;color:var(--muted);align-items:center;padding-inline:30px;font-size:.58rem;display:flex}.identity-name{color:var(--ink);margin-right:24px;font-weight:800;text-decoration:none}.identity-inner nav{gap:22px;margin-left:auto}.identity-inner nav a{text-decoration:none}.publication-index{border-inline:1px solid var(--line);grid-template-columns:minmax(0,1fr) 270px;min-height:70vh;display:grid}.index-main{min-width:0;padding:clamp(54px,6vw,78px) clamp(28px,5vw,58px) 80px}.index-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px;display:flex}.index-heading h1{margin-bottom:0}.index-heading>span{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding-bottom:7px;font-size:.62rem}.writing-list{display:block}.empty-state{border-top:3px solid var(--accent);max-width:620px;padding-top:28px}.empty-state h2{margin-bottom:14px;font-size:clamp(1.8rem,4vw,3rem)}.empty-state p{color:var(--ink-soft);font-family:var(--serif)}.empty-state a{color:var(--accent);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;font-size:.63rem;font-weight:700}.writing-card{border-top:1px solid var(--line);grid-template-columns:86px minmax(0,1fr) 28px;gap:clamp(18px,3vw,34px);padding-block:30px;display:grid}.writing-card.prominent{border-top:3px solid var(--accent)}.entry-meta{color:var(--muted);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;flex-direction:column;gap:5px;font-size:.59rem;line-height:1.4;display:flex}.entry-meta a{color:var(--accent);font-weight:800;text-decoration:none}.entry-copy h2{letter-spacing:-.045em;max-width:720px;margin:0 0 10px;font-size:clamp(1.5rem,3vw,2.45rem);line-height:1.03}.entry-copy h2 a{text-decoration:none}.entry-copy>p{max-width:700px;color:var(--ink-soft);font-family:var(--serif);margin-bottom:18px;font-size:1rem;line-height:1.55}.entry-topics{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.56rem}.entry-arrow{color:var(--accent);place-self:start end;font-size:1.05rem;text-decoration:none}.index-sidebar{border-left:1px solid var(--line)}.index-sidebar section{border-bottom:1px solid var(--line);padding:30px 24px}.index-sidebar h2{color:var(--muted);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;margin-bottom:22px;font-size:.59rem;line-height:1.3}.index-sidebar dl{margin:0}.index-sidebar dl div{border-top:1px solid var(--line-soft);justify-content:space-between;padding-block:10px;font-size:.76rem;display:flex}.index-sidebar dt a{font-weight:700;text-decoration:none}.index-sidebar dd{color:var(--muted);margin:0}.sidebar-title{font-family:var(--serif);margin-bottom:15px;font-size:.95rem;line-height:1.35;text-decoration:none;display:block}.index-sidebar time{color:var(--muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.57rem}.index-sidebar .sidebar-subscribe{background:var(--panel)}.sidebar-subscribe p{font-family:var(--serif);margin-bottom:20px;font-size:.9rem}.sidebar-subscribe>a{min-height:32px;color:var(--accent);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;margin-top:8px;font-size:.6rem;font-weight:700;text-decoration:none;display:flex}.page-header{border-bottom:1px solid var(--line);padding-block:clamp(68px,10vw,120px) clamp(46px,7vw,78px)}.page-header h1{max-width:900px;margin-bottom:24px}.page-header>p:not(.eyebrow){max-width:760px;color:var(--ink-soft);font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.45rem)}.page-header>.text-link{margin-top:14px;display:inline-block}.eyebrow,.error-code,.case-kicker{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;font-weight:800}.section{padding-block:clamp(64px,9vw,110px)}.section-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:42px;display:flex}.section-heading h2{max-width:760px;margin-bottom:0}.text-link{color:var(--accent);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;font-size:.65rem;font-weight:700}.button{border:1px solid var(--accent);min-height:46px;color:var(--white);background:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;justify-content:center;align-items:center;padding:10px 18px;font-size:.65rem;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{color:var(--accent);background:0 0}.kind-key,.topic-list{flex-wrap:wrap;gap:9px;margin-top:30px;display:flex}.kind{border:1px solid var(--line);color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;font-size:.58rem;font-weight:700}.newsletter{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;gap:clamp(36px,7vw,90px);padding-block:clamp(42px,6vw,72px);display:grid}.newsletter h2{margin-bottom:18px;font-size:clamp(2rem,4vw,3.5rem)}.newsletter>div>p:last-child{color:var(--ink-soft);font-family:var(--serif)}.subscribe-form{align-self:center}.subscribe-form label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:.62rem;font-weight:700;display:block}.form-row{grid-template-columns:minmax(0,1fr) auto;display:grid}.form-row input{border:1px solid var(--line);min-width:0;min-height:46px;color:var(--ink);background:var(--white);font:inherit;border-right:0;border-radius:0;padding:10px 13px}.form-note{color:var(--muted);margin:11px 0 0;font-size:.76rem}.case-study{border-bottom:1px solid var(--line)}.case-kicker{gap:12px;margin-bottom:50px;display:flex}.case-kicker span+span:before{content:"/";margin-right:12px}.case-grid{grid-template-columns:1fr 1fr;gap:clamp(44px,8vw,120px);display:grid}.case-lede{color:var(--ink-soft);font-family:var(--serif);font-size:1.3rem}.case-body h3{color:var(--accent);font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;margin:32px 0 8px;font-size:.65rem}.case-body p,.timeline p,.project-card p{color:var(--ink-soft)}.timeline article{border-top:1px solid var(--line);grid-template-columns:.35fr .8fr 1.3fr;gap:36px;padding-block:28px;display:grid}.timeline article>span{color:var(--accent);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;font-size:.61rem;font-weight:700}.timeline h3,.timeline p{margin:0}.project-pair{grid-template-columns:1fr 1fr;gap:24px;padding-top:0;display:grid}.project-card{border:1px solid var(--line);background:var(--white);grid-template-columns:82px 1fr;gap:24px;padding:26px;display:grid}.project-card img{border-radius:18%;width:82px;height:82px}.project-card h2{margin-bottom:10px;font-size:2rem}.project-card.project-card-text{grid-template-columns:1fr}.about-hero{grid-template-columns:minmax(260px,.6fr) 1.4fr;align-items:start;gap:clamp(48px,8vw,110px);padding-block:clamp(70px,10vw,120px);display:grid}.about-hero h1{max-width:800px;font-size:clamp(3rem,6vw,5.6rem)}.hero-dek{max-width:680px;color:var(--ink-soft);font-family:var(--serif);font-size:1.35rem;line-height:1.5}.hero-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;display:flex}.portrait-frame{border:1px solid var(--line);background:var(--white);padding:12px 12px 42px}.portrait-frame img{aspect-ratio:1;filter:grayscale();object-fit:cover;width:100%}.portrait-frame span{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:12px 4px 0;font-size:.58rem;display:block}.compact{max-width:700px}.article{padding-block:clamp(64px,9vw,110px)}.article-header{border-bottom:1px solid var(--line);margin-bottom:64px;padding-bottom:38px}.back-link{color:var(--accent);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;margin-bottom:46px;font-size:.62rem;font-weight:700;display:inline-block}.article-header .writing-meta{color:var(--muted);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:16px;font-size:.6rem;display:flex}.article-header h1{margin:28px 0;font-size:clamp(3rem,7vw,6.2rem)}.article-dek{color:var(--ink-soft);font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.48}.article-byline{font-family:var(--mono);margin-top:25px;font-size:.62rem}.topic-list span{border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:.59rem}.prose{color:#24394a;font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.25rem);line-height:1.75}.prose>*{max-width:68ch}.prose h2{font-family:var(--sans);letter-spacing:-.04em;margin:2.2em 0 .6em;font-size:clamp(1.8rem,3.5vw,2.8rem)}.prose h3{margin:2em 0 .5em}.prose li+li{margin-top:.5em}.prose blockquote{border-left:3px solid var(--accent);color:var(--ink-soft);margin:2em 0;padding-left:1.3em;font-style:italic}.prose code{background:var(--paper-muted);font-family:var(--mono);padding:.12em .3em;font-size:.85em}.not-found{min-height:66vh;padding-block:clamp(100px,16vw,190px)}.not-found p:not(.error-code){max-width:560px;color:var(--ink-soft);font-family:var(--serif);margin-bottom:28px;font-size:1.2rem}.site-footer{border-top:1px solid var(--line);color:var(--paper);background:var(--ink);padding-block:44px}.footer-grid{justify-content:space-between;align-items:end;gap:42px;display:flex}.footer-title{font-family:var(--serif);margin-bottom:7px;font-size:1.3rem}.footer-note{color:#b9c5cd;max-width:540px;margin-bottom:0;font-size:.84rem}.footer-links{flex-wrap:wrap;gap:28px}@media (width<=900px){:root{--shell:min(100% - 36px, 760px);--narrow:min(100% - 36px, 720px)}.topbar{grid-template-columns:1fr auto;padding:12px 20px 0}.format-nav{grid-area:2/1/auto/-1}.format-nav ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.format-nav li{text-align:center}.format-nav a{min-height:44px}.identity-inner{flex-wrap:wrap;gap:8px 18px;padding-block:10px;padding-inline:20px}.identity-name{margin-right:0}.identity-inner nav{justify-content:space-between;gap:12px;width:100%;margin-left:0}.publication-index{grid-template-columns:1fr}.index-sidebar{border-top:1px solid var(--line);border-left:0;grid-template-columns:repeat(3,1fr);display:grid}.index-sidebar section{border-bottom:0}.index-sidebar section+section{border-left:1px solid var(--line)}.case-grid,.newsletter,.about-hero{grid-template-columns:1fr}.portrait-frame{max-width:400px}.timeline article{grid-template-columns:.4fr 1fr}.timeline article p{grid-column:2}}@media (width<=620px){:root{--shell:calc(100% - 24px);--narrow:calc(100% - 24px)}.topbar,.identity-inner,.publication-index{border-inline:0}.identity-inner>span{width:100%}.identity-inner nav{white-space:nowrap;justify-content:flex-start;overflow-x:auto}.index-main{padding:46px 8px 58px}.index-heading{flex-direction:column;align-items:flex-start;gap:12px}.index-heading h1{font-size:clamp(2.8rem,14vw,4rem)}.writing-card{grid-template-columns:60px minmax(0,1fr) 18px;gap:12px;padding-block:25px}.entry-copy h2{font-size:clamp(1.35rem,7vw,1.8rem)}.entry-copy>p{font-size:.95rem}.index-sidebar{grid-template-columns:1fr}.index-sidebar section+section{border-top:1px solid var(--line);border-left:0}.section-heading,.footer-grid{flex-direction:column;align-items:flex-start}.form-row{grid-template-columns:1fr;gap:8px}.form-row input{border-right:1px solid var(--line)}.timeline article{grid-template-columns:1fr;gap:10px}.timeline article p{grid-column:1}.project-pair{grid-template-columns:1fr}.project-card{grid-template-columns:64px 1fr;gap:18px;padding:20px}.project-card img{width:64px;height:64px}.footer-links{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important}}@media (forced-colors:active){.subscribe-link,.button{border:1px solid buttontext}}
