:root{--paper:#f3f0e8;--paper-deep:#e7e1d3;--ink:#171714;--muted:#696861;--line:#d4cec0;--blue:#0b87b7;--blue-dark:#075d7f;--coral:#d26753;--green:#39795a;--amber:#b47910;--plum:#76558f;--page:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{min-height:100vh;color:var(--ink);background:linear-gradient(#ffffff47, #ffffff47), radial-gradient(circle at 12% 10%, #0b87b714, transparent 29%), var(--paper);margin:0;font-family:Georgia,Iowan Old Style,Palatino Linotype,Palatino,Times New Roman,serif;line-height:1.62}a{color:inherit;text-underline-offset:.2em}a:hover{color:var(--blue-dark)}img{max-width:100%;display:block}button,input{font:inherit}::selection{background:#cae8f3}.skip-link{z-index:20;background:var(--ink);color:#fff;border-radius:4px;padding:.6rem .85rem;position:fixed;top:1rem;left:1rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,.site-footer,.page-shell{width:min(var(--page), calc(100% - 40px));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:2rem;padding:24px 0;display:flex}.wordmark{white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:1.22rem;font-weight:700;text-decoration:none}.wordmark span{color:var(--blue);display:inline-block}.wordmark:hover span{animation:.6s dot-bob}@keyframes dot-bob{0%,to{transform:translateY(0)scale(1)}35%{transform:translateY(-4px)scale(1.28)}70%{transform:translateY(0)scale(1)}}nav{flex-wrap:wrap;gap:18px;display:flex}nav a{color:var(--muted);text-transform:uppercase;letter-spacing:.085em;font-size:.76rem;font-weight:750;text-decoration:none;transition:color .2s;position:relative}nav a:after{content:"";background:var(--blue);transform-origin:0;height:2px;transition:transform .28s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}nav a:hover{color:var(--blue-dark)}nav a:hover:after,nav a:focus-visible:after{transform:scaleX(1)}nav a[aria-current=page]{color:var(--ink)}nav a[aria-current=page]:after{background:var(--ink);transform:scaleX(1)}nav a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}.page-shell{padding:clamp(52px,8vw,112px) 0}.page-kicker,.card-kicker{color:var(--blue-dark);letter-spacing:.14em;text-transform:uppercase;font-size:.73rem;font-weight:800}h1,h2,.display{letter-spacing:-.045em;font-family:Georgia,Times New Roman,serif;font-weight:500}h1{max-width:980px;margin:.16em 0 .3em;font-size:clamp(3.5rem,9vw,8.2rem);line-height:.88}h2{margin:0 0 24px;font-size:clamp(2rem,4.8vw,4.25rem);line-height:1}h3{line-height:1.2}.lede{color:#3f3e39;max-width:790px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.18rem,2.2vw,1.55rem)}.muted{color:var(--muted)}.rule{border-top:1px solid var(--line)}.hero{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:clamp(30px,6vw,92px);min-height:72vh;display:grid;position:relative}.hero-copy{flex-direction:column;gap:clamp(20px,3vw,30px);min-width:0;display:flex}.hero-aside{max-width:340px;color:var(--muted);font-size:.88rem}.hero-aside p:last-child{margin:6px 0 0}.hero h1{font-size:clamp(3rem,6.4vw,6.1rem)}.hero-visual{min-width:0}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(300px circle at var(--hx,72%) var(--hy,38%), #0b87b71a, transparent 62%);opacity:0;transition:opacity .5s;position:absolute;inset:-12% -8%}.hero.spot-on:before{opacity:1}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.button{border:1px solid var(--ink);letter-spacing:.04em;background:0 0;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 18px;font-size:.8rem;font-weight:750;text-decoration:none;transition:transform .2s,background-color .25s,color .25s,box-shadow .25s;display:inline-flex}.button.primary{color:#fff;background:var(--ink)}.button:hover{transform:translateY(-2px);box-shadow:0 12px 26px -16px #17171499}.button:not(.primary):hover{background:var(--ink);color:#fff}.button:focus-visible{outline:none;box-shadow:0 0 0 3px #0b87b773}.section{padding:clamp(54px,8vw,96px) 0}.section-head{grid-template-columns:minmax(140px,.4fr) minmax(0,1.6fr);gap:clamp(28px,7vw,90px);margin-bottom:34px;display:grid}.section-label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:750}.section-intro{max-width:760px}.entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.entry-card{border:1px solid var(--line);background:#fffefacc;border-radius:8px;flex-direction:column;min-width:0;min-height:270px;padding:20px;display:flex}.entry-card.featured{background:var(--ink);color:#fff;grid-column:span 2;min-height:340px}.entry-card.featured .entry-meta,.entry-card.featured p{color:#c8c7bf}.entry-card h3{margin:30px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:500}.entry-card h3 a{text-decoration:none}.entry-card p{color:#4f4e48;margin:0 0 22px}.entry-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;justify-content:space-between;gap:12px;font-size:.7rem;font-weight:750;display:flex}.tag-list{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:3px 8px;font-size:.68rem}.artifact-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.art-card{background:var(--ink);color:#fff;grid-template-rows:minmax(0,1fr) auto;min-height:600px;text-decoration:none;display:grid;overflow:hidden}.art-card img{object-fit:cover;filter:saturate(.78);width:100%;height:100%;transition:transform .45s,filter .45s}.art-card:hover img{filter:saturate();transform:scale(1.015)}.art-card footer{justify-content:space-between;gap:18px;padding:18px 20px;display:flex}.art-card footer span:last-child{color:#b8b8b0}.callout{border-left:4px solid var(--blue);background:#dceef4;max-width:820px;padding:24px}.split{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;display:grid}.prose{max-width:760px;font-family:Georgia,Times New Roman,serif;font-size:1.13rem}.prose h2,.prose h3{margin-top:2.5em}.prose h2{font-size:2rem}.prose h3{font-family:inherit;font-size:1.45rem}.prose p,.prose ul,.prose ol,.prose blockquote{margin:0 0 1.35em}.prose blockquote{border-left:3px solid var(--blue);color:#4f4e48;padding-left:18px;font-style:italic}.prose img{border-radius:6px;margin:32px 0}.prose hr{border:0;border-top:1px solid var(--line);margin:42px 0}.article-header{border-bottom:1px solid var(--line);max-width:880px;margin-bottom:42px;padding-bottom:36px}.article-header h1{font-size:clamp(3rem,7vw,6.2rem)}.project-list{border-top:1px solid var(--line);gap:0;display:grid}.project-row{border-bottom:1px solid var(--line);grid-template-columns:90px minmax(0,1.4fr) minmax(180px,.6fr);gap:22px;padding:25px 0;text-decoration:none;display:grid}.project-row:hover h3{color:var(--blue-dark)}.project-row h3{margin:0;font-family:Georgia,serif;font-size:1.4rem;font-weight:500}.project-row p{color:var(--muted);margin:0}.calendar-legend{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:26px 0;display:grid}.legend{--accent:var(--blue);border-top:7px solid var(--accent);background:#fffefac7;padding:15px}.legend[data-kind=constraint]{--accent:var(--coral)}.legend[data-kind=bet]{--accent:var(--amber)}.legend[data-kind=habit]{--accent:var(--green)}.legend[data-kind=meaningful]{--accent:var(--plum)}.legend strong{font-size:.83rem;display:block}.legend span{color:var(--muted);font-size:.75rem}.progress-feed{border-top:1px solid var(--line)}.progress-item{border-bottom:1px solid var(--line);grid-template-columns:120px 130px minmax(0,1fr);gap:16px;padding:14px 0;display:grid}.kind{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:800}.kind.goal{color:var(--blue-dark)}.kind.constraint{color:var(--coral)}.kind.bet{color:var(--amber)}.kind.habit{color:var(--green)}.kind.meaningful{color:var(--plum)}.archive-year{border-top:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:24px;padding:28px 0;display:grid}.archive-year h2{font-size:2rem}.archive-items{gap:10px;display:grid}.archive-item{grid-template-columns:100px minmax(0,1fr) auto;align-items:baseline;gap:16px;text-decoration:none;display:grid}.archive-item span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.76rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:28px;padding:38px 0 58px;font-size:.84rem;display:flex}.site-footer p{margin:4px 0 0}.footer-links{flex-wrap:wrap;align-items:start;gap:16px;display:flex}@media (width<=850px){.hero,.section-head{grid-template-columns:1fr}.hero{min-height:auto;padding:64px 0}.hero-aside{max-width:680px}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-card.featured{grid-column:span 2}.calendar-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.site-header{align-items:flex-start}nav{justify-content:flex-end;gap:9px 13px}nav a{font-size:.66rem}.entry-grid,.split,.artifact-strip,.calendar-legend{grid-template-columns:1fr}.entry-card.featured{grid-column:auto}.art-card{min-height:480px}.project-row{grid-template-columns:70px minmax(0,1fr)}.project-row p{grid-column:2}.progress-item{grid-template-columns:95px minmax(0,1fr)}.progress-item .kind{text-align:right;grid-area:1/2}.progress-item p{grid-column:1/-1;margin:0}.archive-year{grid-template-columns:1fr}.archive-item{grid-template-columns:76px minmax(0,1fr)}.archive-item span:last-child{display:none}.site-footer{flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}[data-reveal]{transition:opacity .6s,transform .6s}.js [data-reveal]:not(.is-visible){opacity:0;transform:translateY(14px)}.entry-card{transition:transform .32s,border-color .32s,box-shadow .32s,opacity .55s}.entry-card:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 20px 44px -30px #0b87b78c}.project-row{margin-inline:-12px;padding-inline:12px;transition:transform .3s,background-color .3s,opacity .6s}.project-row:hover{background:#0b87b70d;transform:translate(6px)}@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1!important;transform:none!important}}.thread{margin-top:3.5rem}.thread-part+.thread-part{margin-top:3rem}.thread-rule{color:var(--muted);align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.thread-rule:after{content:"";background:var(--line);flex:1;height:1px}.thread-date{color:var(--muted);white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:.92rem;font-style:italic;text-decoration:none}.thread-date:hover{color:var(--ink)}.thread-part h2{margin:0 0 .85rem;font-size:1.35rem}.thread-part:target .thread-date{color:var(--blue-dark)}.edits{border-top:1px solid var(--line);color:var(--muted);margin-top:3rem;padding-top:1.25rem;font-size:.92rem}.edits ul{margin:.5rem 0 0;padding:0;list-style:none}.edits li{padding:.25rem 0}.edits time{color:var(--ink)}
