:root{--bg:#0a0a0a;--ink:#f2f2f2;--dim:#a9a9a9;--faint:#8a8a8a;--rule:#242424;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.nav{z-index:10;mix-blend-mode:difference;justify-content:space-between;align-items:baseline;padding:1.4rem 2rem;display:flex;position:fixed;inset:0 0 auto}.nav .name{letter-spacing:-.01em;font-weight:500}.nav ul{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;gap:2rem;font-size:.72rem;list-style:none;display:flex}.nav ul a{color:var(--dim);transition:color .25s}.nav ul a:hover{color:var(--ink)}.hero{align-items:flex-end;height:clamp(560px,74svh,760px);display:flex;position:relative;overflow:hidden}#field{width:100%;height:100%;position:absolute;inset:0}.hero-inner{z-index:2;max-width:1200px;padding:0 2rem 4.5rem;position:relative}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);opacity:0;margin-bottom:1.6rem;font-size:.72rem;animation:.9s cubic-bezier(.2,.7,.2,1) .2s forwards rise}h1{letter-spacing:-.045em;opacity:0;font-size:clamp(3.2rem,9.5vw,8.5rem);font-weight:500;line-height:.98;animation:1s cubic-bezier(.2,.7,.2,1) .4s forwards rise;display:grid}h1 em{color:var(--dim);font-style:normal}h1 .ph{opacity:0;text-wrap:balance;grid-area:1/1;align-self:end;transition:opacity .9s}h1 .ph.on{opacity:1}.hero p{max-width:34rem;color:var(--dim);opacity:0;margin-top:1.8rem;font-size:1.05rem;animation:1s cubic-bezier(.2,.7,.2,1) .7s forwards rise}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}section{max-width:1200px;margin:0 auto;padding:6.5rem 2rem 0}.sec-head{border-top:1px solid var(--rule);justify-content:space-between;align-items:baseline;margin-bottom:3rem;padding-top:1rem;display:flex}.sec-head h2{font-size:.78rem;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:400}.sec-head a{font-family:var(--mono);color:#b4b4b4;letter-spacing:.08em;font-size:.72rem;transition:color .25s}.sec-head a:hover{color:var(--ink)}.lede{max-width:44rem;color:var(--dim);margin:-1.6rem 0 3rem;font-size:1.05rem}.lede strong{color:var(--ink);font-weight:400}.topics{flex-wrap:wrap;gap:.6rem;margin:-1.6rem 0 2.6rem;display:flex}.topics span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border:1px solid var(--rule);border-radius:99px;padding:.4rem .8rem;font-size:.66rem}.sweep{isolation:isolate;position:relative}.sweep:before{content:"";background:var(--ink);transform-origin:0;z-index:-1;transition:transform .32s cubic-bezier(.65,0,.35,1);position:absolute;inset:0;transform:scaleX(0)}.sweep:hover:before{transform:scaleX(1)}.projects{grid-template-columns:repeat(3,1fr);gap:3rem 2.5rem;display:grid}.proj{margin:-1.2rem;padding:1.2rem}.proj h3{letter-spacing:-.02em;margin-bottom:.55rem;font-size:1.45rem;font-weight:500;transition:color .25s}.proj p{color:var(--dim);font-size:.92rem;transition:color .25s}.proj .meta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-top:.9rem;font-size:.68rem;transition:color .25s;display:block}.proj:hover h3{color:#0a0a0a}.proj:hover p{color:#4c4c4c}.proj:hover .meta{color:#6e6e6e}.essay{border-top:1px solid var(--rule);grid-template-columns:1fr 2.2fr;gap:2.5rem;margin-inline:-.7rem;padding:2rem .7rem;display:grid}.essay time{font-family:var(--mono);color:var(--faint);letter-spacing:.08em;font-size:.72rem;transition:color .25s;display:block}.essay .topic{font-family:var(--mono);color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-top:.5rem;font-size:.62rem;transition:color .25s;display:block}.essay h3{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:500;line-height:1.15;transition:color .25s}.essay p{color:var(--dim);max-width:38rem;margin-top:.7rem;font-size:.95rem;transition:color .25s}.essay:hover h3{color:#0a0a0a}.essay:hover p{color:#4c4c4c}.essay:hover time,.essay:hover .topic{color:#6e6e6e}.notes{list-style:none}.notes li{border-top:1px solid var(--rule)}.notes a{align-items:baseline;gap:2rem;margin-inline:-.7rem;padding:1.05rem .7rem;display:flex}.notes time{font-family:var(--mono);color:var(--faint);flex:0 0 5.5rem;font-size:.7rem;transition:color .25s}.notes .t{letter-spacing:-.01em;flex:1;font-size:1rem;transition:color .25s}.notes .tag{font-family:var(--mono);color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;transition:color .25s}.notes a:hover .t{color:#0a0a0a}.notes a:hover time,.notes a:hover .tag{color:#6e6e6e}.about{padding-bottom:0}.about p{letter-spacing:-.02em;max-width:52rem;color:var(--ink);font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:400;line-height:1.4}.about p em{color:var(--dim);font-style:normal}.about .bio{color:var(--dim);letter-spacing:0;max-width:44rem;margin-top:1.8rem;font-size:1rem;line-height:1.7}.about .story{border-top:1px solid var(--rule);gap:1.15rem;max-width:44rem;margin-top:2.6rem;padding-top:2.2rem;display:grid}.about .story p{color:var(--dim);letter-spacing:0;font-size:.95rem;line-height:1.75}.about .story .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:.68rem}footer{border-top:1px solid var(--rule);max-width:1200px;font-family:var(--mono);color:var(--dim);letter-spacing:.08em;flex-wrap:wrap;justify-content:space-between;gap:2rem;margin:6.5rem auto 0;padding:2rem;font-size:.72rem;display:flex}footer a{color:#c9c9c9;transition:color .25s}footer a:hover{color:var(--ink)}footer .links{gap:1.8rem;display:flex}@media (width<=760px){.nav{padding:1.1rem 1.25rem}.nav ul{gap:1.1rem}.hero-inner{padding:0 1.25rem 4.2rem}section{padding:4.5rem 1.25rem 0}.projects{grid-template-columns:1fr;gap:2.2rem}.essay{grid-template-columns:1fr;gap:.4rem}.notes .tag{display:none}footer{margin-top:4.5rem;padding:2rem 1.25rem}}@media (prefers-reduced-motion:reduce){.eyebrow,h1,.hero p{opacity:1;animation:none}.sweep:before{transition:none}html{scroll-behavior:auto}}.page{max-width:1200px;margin:0 auto;padding:8rem 2rem 0}.page .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-size:.72rem}.page .pt{letter-spacing:-.04em;text-wrap:balance;opacity:1;margin-top:1rem;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:500;line-height:1.05;animation:none;display:block}.page .topics{margin:2.4rem 0 1.4rem}.back{font-family:var(--mono);color:#b4b4b4;letter-spacing:.08em;font-size:.72rem;transition:color .25s}.back:hover{color:var(--ink)}.article{max-width:42rem;margin-top:3rem}.article p{color:var(--dim);margin-bottom:1.5rem;font-size:1.03rem;line-height:1.85}.article strong{color:var(--ink);font-weight:500}.article h2{letter-spacing:-.02em;margin:2.6rem 0 1.1rem;font-size:1.35rem;font-weight:500}.article a{text-underline-offset:3px;text-decoration:underline}@media (width<=760px){.page{padding:6.5rem 1.25rem 0}}.nav ul a.active{background:var(--ink);color:#0a0a0a;padding:.4rem .8rem}.topics a{display:inline-block}.topics button{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:99px;padding:.4rem .8rem;font-size:.66rem;transition:color .2s,background .2s,border-color .2s}.topics button:hover{color:var(--ink);border-color:var(--faint)}.topics button.on{background:var(--ink);color:#0a0a0a;border-color:var(--ink)}.pn{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:2rem;max-width:42rem;margin-top:4.5rem;padding-top:1.6rem;display:grid}.pn a{align-content:start;gap:.5rem;display:grid}.pn a .t{letter-spacing:-.01em;font-size:1.05rem;transition:color .25s}.pn a:hover .t{color:var(--dim)}.pn .r{text-align:right}.article ul{color:var(--dim);margin:0 0 1.5rem 1.15rem;line-height:1.85}.article li{margin-bottom:.35rem}@media (height<=700px){#headline{font-size:clamp(2.4rem,7vw,4.2rem)}}
