@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-normal-s-izfB6B.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-italic-kJKFiXvB.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-YINYabwD.woff2) format("woff2")}@font-face{font-family:Redaction;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/redaction-latin-400-normal-uAie4j47.woff2) format("woff2")}@font-face{font-family:"Redaction 50";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/redaction-50-latin-400-normal-DkNaVhPh.woff2) format("woff2")}:root{--paper: #F6F3EC;--ink: #1D1B17;--muted: #6B655B;--faint: #8F897D;--hair: #E2DCCF;--tint: #EDE8DD;--accent: #C2491D;--accent-soft: #E8A487;--glass: color-mix(in srgb, #F6F3EC 74%, transparent);--sheet: color-mix(in srgb, #FBF9F4 88%, transparent);--scrim: rgba(29, 27, 23, .3);--letter: #FDFBF6;--letter-edge: #E6E0D3;--fs: 1;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 10px 30px rgba(0, 0, 0, .08);--display: "Fraunces Variable", Georgia, serif;--text: "Newsreader Variable", Georgia, serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--measure: 42rem;--bar-h: 3.5rem;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light}:root[data-theme=dark]{--paper: #11100E;--ink: #EFEAE0;--muted: #ABA396;--faint: #7E776B;--hair: #26231F;--tint: #1B1916;--accent: #F0845A;--accent-soft: #6E3520;--glass: color-mix(in srgb, #11100E 70%, transparent);--sheet: color-mix(in srgb, #1C1A17 90%, transparent);--scrim: rgba(0, 0, 0, .55);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px rgba(0, 0, 0, .35);--letter: #1E1C19;--letter-edge: #2F2B26;color-scheme:dark}@property --fs{syntax: "<number>"; inherits: true; initial-value: 1;}html{transition:--fs .32s cubic-bezier(.2,.8,.2,1);overflow-anchor:auto}html[data-size=s]{--fs: .9}html[data-size=l]{--fs: 1.15}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--bar-h) + 1.5rem);-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.62 var(--text);font-optical-sizing:auto;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color .4s ease,color .4s ease}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{padding:0}img{max-width:100%;display:block}button{font:inherit;color:inherit}a{color:inherit}::-moz-selection{background:var(--accent-soft);color:var(--ink)}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;padding:.6rem 1rem;background:var(--paper);color:var(--ink);border:1px solid var(--ink);border-radius:.5rem;font:500 .8rem var(--mono)}.skip-link:focus{top:.75rem}.tabular{font-variant-numeric:tabular-nums}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;z-index:80;left:50%;bottom:calc(100% + .5rem);width:-moz-max-content;width:max-content;max-width:min(16rem,calc(100vw - 2.5rem));padding:.38rem .6rem .36rem;border-radius:.45rem;background:var(--ink);color:var(--paper);font:400 .66rem/1.35 var(--mono);font-style:normal;letter-spacing:.04em;text-transform:none;white-space:normal;overflow-wrap:anywhere;box-shadow:0 6px 18px #0000002e;pointer-events:none;opacity:0;transform:translate(-50%,3px);transition:opacity .15s ease-out,transform .15s ease-out}[data-tip-pos=below]:after{bottom:auto;top:calc(100% + .5rem);transform:translate(-50%,-3px)}[data-tip-align=end]:after{left:auto;right:0;transform:translateY(-3px)}[data-tip-align=start]:after{left:0;transform:translateY(3px)}@media (hover: hover) and (pointer: fine){[data-tip]:hover:after{opacity:1;transform:translate(-50%);transition-delay:.35s}[data-tip-align=end]:hover:after,[data-tip-align=start]:hover:after{transform:translate(0)}}[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%)}[data-tip-align=end]:focus-visible:after{transform:translate(0)}.year[data-tip]:after{left:0;transform:translateY(3px);font-size:.64rem}@media (hover: hover) and (pointer: fine){.year[data-tip]:hover:after{transform:translate(0)}}.year.is-repeat[data-tip]:after{display:none}[hidden]{display:none!important}code{font:.85em var(--mono);background:var(--tint);padding:.1em .35em;border-radius:.25rem}.display{font:400 calc(clamp(2.4rem,1.4rem + 3.6vw,3.75rem) * var(--fs))/1.03 var(--display);font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.028em;text-wrap:balance}.display b{font-weight:560}.display em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}.display-l{font:400 calc(clamp(2.1rem,1.5rem + 2vw,2.9rem) * var(--fs))/1.06 var(--display);font-variation-settings:"opsz" 96,"SOFT" 50;letter-spacing:-.022em;text-wrap:balance}.stack{display:flex;flex-wrap:wrap;gap:.1rem .5rem;font:400 calc(.74rem * var(--fs))/1.65 var(--mono);letter-spacing:.02em;color:var(--muted);margin:0}.stack span{white-space:nowrap}@media (max-width: 40rem){.stack span{white-space:normal;overflow-wrap:anywhere}}.stack span:not(:last-child):after{content:"·";margin-left:.5rem;color:var(--faint)}.year.is-repeat{visibility:hidden}.row:hover .year.is-repeat,.row:focus-visible .year.is-repeat{visibility:visible;opacity:.35}.freelance-type{font-style:italic;color:var(--muted)}.mono-line{font:400 calc(.75rem * var(--fs))/1.6 var(--mono);letter-spacing:.03em;color:var(--muted)}.subhead{font:400 calc(.72rem * var(--fs))/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:2.5rem 0 .4rem}.empty{color:var(--muted);font-style:italic;padding:1rem 0}.sitebar{position:sticky;top:0;z-index:40;background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}.sitebar:after{content:"";position:absolute;left:0;right:0;top:100%;height:1.1rem;pointer-events:none;opacity:0;transition:opacity .25s ease;background:linear-gradient(var(--glass),transparent)}.sitebar.is-scrolled:after{opacity:1}.sitebar-in{max-width:62rem;margin:0 auto;min-height:var(--bar-h);padding:.5rem max(1.25rem,env(safe-area-inset-right)) .5rem max(1.25rem,env(safe-area-inset-left));display:flex;align-items:center;gap:1.5rem}.wordmark{font:500 1.05rem/1 var(--display);font-variation-settings:"opsz" 18,"SOFT" 50;letter-spacing:-.005em;text-decoration:none;white-space:nowrap}.sitenav{position:relative;display:flex;gap:1.4rem;margin-left:auto;overflow-x:auto;scrollbar-width:none;padding:.3rem .4rem .15rem}.sitenav a:focus-visible{outline-offset:2px}.sitenav-bar{position:absolute;left:0;bottom:.2rem;height:1.5px;width:0;border-radius:1px;background:var(--accent);opacity:0;pointer-events:none;transition:transform .45s var(--ease),width .45s var(--ease),opacity .2s ease}.sitenav::-webkit-scrollbar{display:none}.sitenav a{font:400 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:.45rem 0;position:relative;white-space:nowrap;transition:color .25s ease-out}.sitenav a:hover,.sitenav a.active{color:var(--ink)}.themeglyph{display:flex;align-items:center;gap:.45rem;margin-left:.5rem;background:none;border:0;padding:.35rem .2rem;cursor:pointer;color:var(--ink);border-radius:.5rem}.themeglyph svg{width:1.25rem;height:1.25rem;overflow:visible;transition:transform .5s var(--ease)}.themeglyph:hover svg{transform:rotate(-12deg)}.themeglyph:active svg{transform:scale(.88);transition-duration:.1s}.themeglyph-disc{fill:var(--ink)}.themeglyph-rays line{stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;transform-origin:12px 12px;transition:transform .5s var(--ease),opacity .3s ease}.themeglyph-rays{transform-origin:12px 12px;transition:transform .6s var(--ease)}.themeglyph-shadow{transition:cx .5s var(--ease),cy .5s var(--ease)}.themeglyph.is-night .themeglyph-shadow{cx:15.5;cy:9}.themeglyph.is-night .themeglyph-rays{transform:rotate(45deg)}.themeglyph.is-night .themeglyph-rays line{opacity:0;transform:scale(.5)}.themeglyph-mode{font:400 .66rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-width:2.4rem;text-align:left}.textsize-wrap{display:inline-flex;align-items:center;gap:.9rem}.textsize-label{font:400 .66rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.textsize{position:relative;display:flex;align-items:flex-end;gap:.15rem;height:2rem}.textsize button{background:none;border:0;padding:0 .35rem .4rem;cursor:pointer;font-family:var(--display);font-variation-settings:"opsz" 24;line-height:1;color:var(--faint);transition:color .15s ease,transform .1s ease-out}.textsize button[data-size=s]{font-size:.85rem}.textsize button[data-size=m]{font-size:1.1rem}.textsize button[data-size=l]{font-size:1.4rem}.textsize button[aria-checked=true],.textsize button:hover{color:var(--ink)}.textsize button:active{transform:scale(.9)}.textsize-bar{position:absolute;left:0;bottom:.15rem;height:1.5px;width:0;background:var(--accent);border-radius:1px;pointer-events:none}.hero-tools{margin-top:2.25rem}.page{font-size:calc(1.125rem * var(--fs));max-width:calc(var(--measure) + 2.5rem + 6rem);margin:0 auto;padding:3rem max(1.25rem,env(safe-area-inset-right)) 4rem max(1.25rem,env(safe-area-inset-left));animation:page-in .26s ease-out}@keyframes page-in{0%{opacity:0}to{opacity:1}}.page>*{max-width:var(--measure);margin-left:auto;margin-right:auto}.page>.rows{max-width:calc(var(--measure) + 1.5rem);margin-inline:max(-.75rem,calc((100% - var(--measure) - 1.5rem) / 2))}.page>.letter-scrim{max-width:none;margin:0}.page>.letter{margin:0}.page-head{display:grid;gap:.9rem;padding-top:1rem;margin-bottom:2.25rem}.page-dek{font:italic 400 calc(1.2rem * var(--fs))/1.5 var(--text);color:var(--muted);max-width:36rem}.section{margin-top:5.5rem}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}.section-head h2{font:450 calc(1.55rem * var(--fs))/1.2 var(--display);font-variation-settings:"opsz" 36,"SOFT" 50;letter-spacing:-.012em}.section-links{display:flex;gap:1.25rem}.section-link,.section-note{font:400 calc(.72rem * var(--fs))/1.4 var(--mono);letter-spacing:.06em;color:var(--muted)}.section-foot{margin-top:1.5rem;font-size:calc(1rem * var(--fs))}.hero{display:grid;grid-template-columns:minmax(0,1fr) 8.25rem;gap:2rem;align-items:end;padding-top:2rem}.portrait{width:8.25rem;aspect-ratio:4 / 5;height:auto;-o-object-fit:cover;object-fit:cover;border-radius:.7rem;filter:saturate(.85)}.hero-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:1.25rem;font:400 calc(.72rem * var(--fs))/1.5 var(--mono);letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.tnlogo{display:inline-block;vertical-align:baseline}.tnlogo img{display:block;width:auto}.tnlogo-on-dark{display:none!important}:root[data-theme=dark] .tnlogo-on-light{display:none!important}:root[data-theme=dark] .tnlogo-on-dark{display:block!important}.tnlogo-wordmark{height:1.45em;width:auto;vertical-align:-.42em;margin-inline:.1em}.tnlogo-wordmark img{height:100%}.tnlogo-mark{height:1.05rem;margin-left:.55rem;vertical-align:-.1rem;opacity:.9}.tnlogo-mark img{height:100%}.live-dot{display:inline-block;width:.4rem;height:.4rem;border-radius:50%;background:var(--accent);margin-right:.45rem;vertical-align:.1rem}.links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.75rem;font-size:calc(1.05rem * var(--fs))}.links.small{font-size:calc(.95rem * var(--fs));margin-top:.75rem}.ink{position:relative;text-decoration:none;color:var(--ink);padding-bottom:.1rem}.ink:before,.ink:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hair)}.ink:after{height:1.5px;background:var(--accent);transform:scaleX(0);transform-origin:var(--ink-origin, left);transition:transform .28s var(--ease)}.ink.is-in:after,.ink:focus-visible:after{transform:scaleX(1)}.section-link.ink,.section-link .ink{color:var(--muted)}.scrubber{margin-top:2.75rem}.scrub-track{position:relative;height:3.6rem;max-width:30rem;cursor:ew-resize;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;border-radius:.25rem}.scrub-ticks{position:absolute;left:0;right:0;top:.9rem;height:1.1rem;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.scrub-ticks i{width:1px;height:.45rem;background:var(--hair)}.scrub-ticks i.major{height:1.1rem;background:var(--faint)}.scrub-label{position:absolute;top:2.35rem;font:400 calc(.66rem * var(--fs))/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);transform:translate(-50%);white-space:nowrap;transition:color .15s ease;pointer-events:none}.scrub-label:first-of-type{transform:none}.scrub-label:last-of-type{transform:translate(-100%)}.scrub-label.is-on{color:var(--ink)}.scrub-head{position:absolute;left:0;top:.25rem;width:2px;height:2rem;margin-left:-1px;background:var(--accent);border-radius:1px;pointer-events:none;will-change:transform}.scrub-head:before{content:"";position:absolute;left:50%;top:-.3rem;width:.6rem;height:.6rem;border-radius:.18rem;background:var(--accent);transform:translate(-50%) rotate(45deg)}.scrub-content{overflow:hidden;margin-top:1.1rem}.bio{display:grid;gap:.9rem;font-size:calc(1.15rem * var(--fs));line-height:1.62;text-wrap:pretty}.bio p+p{color:var(--muted)}.rows{list-style:none;display:grid;margin:0 -.75rem}.row{display:grid;grid-template-columns:5.5rem minmax(0,1fr) auto;gap:0 1.25rem;align-items:start;width:100%;padding:1rem .75rem;border:0;background:none;border-radius:.75rem;text-align:left;text-decoration:none;color:inherit;cursor:pointer;font:inherit;transition:transform .16s var(--ease),background-color .16s ease;-webkit-tap-highlight-color:transparent}.row:hover{background:var(--tint)}.row:active{transform:scale(.985);background:var(--tint);transition-duration:80ms}.year{font-size:calc(1.9rem * var(--fs));letter-spacing:-.01em;line-height:.9;color:var(--muted);font-variant-numeric:lining-nums;padding-top:.1rem}.row-main{display:grid;gap:.2rem;min-width:0}.row-kicker{font:400 calc(.68rem * var(--fs))/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.row-title{font:500 calc(1.2rem * var(--fs))/1.3 var(--display);font-variation-settings:"opsz" 24;letter-spacing:-.006em}.row-dek{font-size:calc(1rem * var(--fs));line-height:1.55;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-meta{font:400 calc(.68rem * var(--fs))/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding-top:.35rem;white-space:nowrap}.chev{display:inline-block;font-size:calc(1rem * var(--fs));transition:transform .2s var(--ease),color .2s ease}.row:hover .chev{transform:translate(2px);color:var(--accent)}.rows-compact .row{padding-top:.7rem;padding-bottom:.7rem}.rows-compact .year{font-size:calc(1.45rem * var(--fs))}.rows-compact .row-title{font-size:calc(1.05rem * var(--fs))}.skills{display:grid;margin-top:.5rem;border-top:1px solid var(--hair)}.skill{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);gap:1rem 2.5rem;padding:1.4rem 0;border-bottom:1px solid var(--hair)}.skill-head h3{font:500 calc(1.15rem * var(--fs))/1.3 var(--display);font-variation-settings:"opsz" 24;letter-spacing:-.006em}.skill-head p{margin-top:.35rem;font-size:calc(1rem * var(--fs));line-height:1.55;color:var(--muted)}.skill-tools{list-style:none;-moz-columns:2;columns:2;-moz-column-gap:1.25rem;column-gap:1.25rem;font:400 calc(.74rem * var(--fs))/1.95 var(--mono);letter-spacing:.02em;color:var(--ink);padding-top:.2rem}.skill-tools li{-moz-column-break-inside:avoid;break-inside:avoid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-copy{color:var(--muted);max-width:32rem}.copy-receipt{margin-top:1.4rem;display:grid;justify-items:start;gap:.7rem}.copy-word{display:inline-grid;gap:.45rem;background:none;border:0;padding:0;cursor:pointer;font:450 calc(clamp(1.4rem,1.1rem + 1vw,1.8rem) * var(--fs))/1.15 var(--display);font-variation-settings:"opsz" 36;letter-spacing:-.012em;color:var(--ink);text-align:left}.copy-line{position:relative;display:block;height:1px;background:var(--hair);transition:background-color .2s ease}.copy-word:hover .copy-line{background:var(--faint)}.copy-sweep{position:absolute;top:-.5px;right:0;bottom:-.5px;left:0;background:var(--accent);transform:scaleX(0);transform-origin:left}.copy-word.is-done .copy-sweep{transform:scaleX(1);transition:transform .32s var(--ease)}.copy-word:active{transform:scale(.985)}.copy-hint{display:flex;gap:.6rem;align-items:baseline;font:400 calc(.66rem * var(--fs))/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.copy-hint a{color:var(--muted);text-decoration:none}.copy-hint a:hover{color:var(--accent)}.receipt{min-height:1.6rem;font:400 calc(1.05rem * var(--fs))/1.4 "Redaction",serif;color:var(--muted);transition:opacity .4s ease}.receipt.is-gone{opacity:0}.receipt-time{font:400 calc(.66rem * var(--fs)) var(--mono);letter-spacing:.08em;color:var(--accent);margin-left:.6rem;vertical-align:.15rem}.letter-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--scrim);opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.letter-scrim.is-open{pointer-events:auto}.letter{position:fixed;z-index:61;left:50%;top:50%;width:min(38rem,calc(100vw - 2rem));max-height:min(84vh,52rem);max-height:min(84dvh,52rem);display:flex;flex-direction:column;visibility:hidden;opacity:0;--off: 60vh;--rot: -3deg;transform:translate(-50%,calc(-50% + var(--off))) rotate(var(--rot));transform-origin:50% 0;background-color:var(--letter);background-image:linear-gradient(to bottom,transparent calc(33% - 1px),color-mix(in srgb,var(--ink) 6%,transparent) calc(33% - 1px),color-mix(in srgb,var(--ink) 6%,transparent) 33%,color-mix(in srgb,var(--ink) 2.5%,transparent) 33%,transparent calc(33% + 1.25rem));border:1px solid var(--letter-edge);border-radius:.3rem;box-shadow:0 1px 1px #0000000a,0 6px 12px #0000000f,0 24px 60px #00000029;touch-action:none;cursor:grab}.letter.is-open{visibility:visible}.letter:active{cursor:grabbing}.letter-body{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:1.6rem 2.25rem 1.75rem;display:grid;gap:1rem;cursor:auto}.letterhead{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.7rem;border-bottom:3px double var(--letter-edge);font:400 .64rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.letter-kicker{margin-top:.5rem;font:400 calc(.68rem * var(--fs))/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.letter-title{font:450 calc(2.3rem * var(--fs))/1.04 var(--display);font-variation-settings:"opsz" 96,"SOFT" 50;letter-spacing:-.022em}.letter-dek{font:italic 400 calc(1.15rem * var(--fs))/1.45 var(--text);color:var(--muted);margin-top:-.35rem}.letter-content{display:grid;gap:.9rem;font-size:calc(1.08rem * var(--fs));line-height:1.65}.letter-content .mono-line{font-size:calc(.72rem * var(--fs))}.letter-content .photo-link img{width:10rem;height:6.6rem}.letter-sign{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.75rem;padding-top:.9rem;border-top:1px solid var(--letter-edge)}.letter-signature{font:italic 400 calc(1.35rem * var(--fs)) var(--display);font-variation-settings:"opsz" 36,"SOFT" 100,"WONK" 1;color:var(--muted)}.letter-close{background:none;border:0;padding:.35rem 0;cursor:pointer;font:400 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.letter-close:hover{color:var(--accent)}.letter-close span{display:inline-block;transition:transform .2s var(--ease)}.letter-close:hover span{transform:translateY(2px)}.sheet-list{list-style:none;display:grid;gap:.35rem}.sheet-list li:before,.highlights li:before{content:"– ";color:var(--faint)}html.sheet-open{overflow:hidden}.sentence{font:400 calc(clamp(1.3rem,1rem + 1vw,1.6rem) * var(--fs))/1.5 var(--display);font-variation-settings:"opsz" 36,"SOFT" 50;letter-spacing:-.012em;margin-bottom:1.25rem}.sentence-menu{position:relative;display:inline-block}.sentence-word{display:inline-flex;align-items:baseline;gap:.25rem;overflow:hidden;white-space:nowrap;vertical-align:bottom;background:none;border:0;padding:0 .1rem;cursor:pointer;font:inherit;font-style:italic;font-variation-settings:"opsz" 36,"SOFT" 100,"WONK" 1;color:var(--accent);border-bottom:1.5px dashed color-mix(in srgb,var(--accent) 45%,transparent)}.sentence-word:hover{border-bottom-style:solid}.sentence-caret{font:400 calc(.7rem * var(--fs)) var(--mono);font-style:normal;transform:translateY(-.15rem);transition:transform .2s var(--ease)}.sentence-word[aria-expanded=true] .sentence-caret{transform:translateY(-.15rem) rotate(180deg)}.sentence-list{position:absolute;z-index:30;left:-1rem;top:calc(100% + .35rem);min-width:15rem;list-style:none;padding:.4rem;border-radius:.9rem;background:var(--sheet);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 9%,transparent),0 1rem 2.5rem #00000024;transform-origin:1.5rem -.4rem;opacity:0;transform:scale(.94) translateY(-.25rem);pointer-events:none;visibility:hidden;transition:opacity .16s ease,transform .22s var(--ease),visibility 0s linear .22s}.sentence-list.is-open{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition:opacity .16s ease,transform .22s var(--ease)}.sentence-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1.1rem;padding:.55rem .75rem .55rem 1.6rem;border-radius:.55rem;cursor:pointer;font:400 calc(1.2rem * var(--fs))/1.2 var(--display);font-variation-settings:"opsz" 24;color:var(--ink)}.sentence-list li span:before{content:"θ";display:inline-block;width:0;transform:translate(-.9rem);opacity:0;color:var(--accent);font-style:italic;transition:opacity .15s ease}.sentence-list li[aria-selected=true]{color:var(--accent)}.sentence-list li[aria-selected=true] span:before{opacity:1}.sentence-list li.is-active{background:var(--tint)}.sentence-list small{font:400 calc(.66rem * var(--fs)) var(--mono);letter-spacing:.08em;color:var(--faint)}.projects{display:grid}.project{display:grid;grid-template-rows:1fr;transition:grid-template-rows .34s var(--ease),opacity .25s ease;scroll-margin-top:calc(var(--bar-h) + 1rem)}.project-clip{overflow:hidden;min-height:0}.project-in{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:0 1.25rem;padding:1.6rem 0;border-top:1px solid var(--hair)}.project-margin{display:grid;gap:.5rem;align-content:start}.project-rank{font:400 calc(.62rem * var(--fs))/1.3 var(--mono);letter-spacing:.08em;color:var(--faint)}.project-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.project-head h2{font:500 calc(1.4rem * var(--fs))/1.25 var(--display);font-variation-settings:"opsz" 36;letter-spacing:-.01em;transition:opacity .2s ease}.project-cat{font:400 calc(.66rem * var(--fs)) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.project-desc{margin-top:.5rem;text-wrap:pretty}.project-result{margin-top:.5rem;font-size:calc(1rem * var(--fs));color:var(--muted);font-style:italic}.project .stack{margin-top:.6rem}.project.is-worn h2,.project.is-worn .project-desc{font-family:"Redaction 50",serif;opacity:.45}.project.is-gone{grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .34s var(--ease),opacity .25s ease,visibility 0s linear .34s}.projects-divider{margin-top:3rem}.tenures{display:grid}.tenure{border-top:1px solid var(--hair);scroll-margin-top:calc(var(--bar-h) + 1rem)}.tenure:last-child{border-bottom:1px solid var(--hair)}.tenure-head{display:grid;grid-template-columns:8.5rem minmax(0,1fr) auto;gap:0 1.25rem;align-items:start;padding:1.15rem 0;cursor:pointer}.tenure-date{display:grid;gap:.5rem;font:400 calc(.68rem * var(--fs))/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding-top:.3rem}.tenure-track{position:relative;display:block;height:2px;width:7.5rem;background:var(--hair);border-radius:1px}.tenure-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:1px;transform-origin:left;transform:scaleX(.04);transition:transform .55s var(--ease)}.tenure.is-open .tenure-fill{transform:scaleX(1)}.tenure-months{color:var(--accent);opacity:0;transition:opacity .2s ease .15s}.tenure.is-open .tenure-months{opacity:1}.tenure-title h2{font:500 calc(1.3rem * var(--fs))/1.3 var(--display);font-variation-settings:"opsz" 24;letter-spacing:-.008em}.tenure-title h2 button{background:none;border:0;padding:0;cursor:pointer;font:inherit;text-align:left;color:var(--ink)}.tenure-role{display:block;font-style:italic;color:var(--muted);font-size:calc(1rem * var(--fs));margin-top:.1rem}.tenure-ind{font:400 calc(1rem * var(--fs)) var(--mono);color:var(--faint);padding-top:.25rem;transition:transform .25s var(--ease),color .2s ease}.tenure.is-open .tenure-ind{transform:rotate(90deg);color:var(--accent)}.tenure-head:hover .tenure-ind{color:var(--accent)}.tenure-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .36s var(--ease)}.tenure.is-open .tenure-body{grid-template-rows:1fr}.tenure-body>div{overflow:hidden;min-height:0;visibility:hidden;transition:visibility 0s linear .36s}.tenure.is-open .tenure-body>div{visibility:visible;transition:none}.tenure-inner{display:grid;gap:.9rem;padding:0 0 1.6rem 9.75rem}.highlights{list-style:none;display:grid;gap:.4rem;font-size:calc(1.02rem * var(--fs))}.freelance-list{list-style:none;display:grid;gap:.3rem;font-size:calc(1.02rem * var(--fs))}.figure{display:grid;gap:.4rem}.figure img{border:1px solid var(--hair);border-radius:.5rem}.figure figcaption{font:400 calc(.7rem * var(--fs)) var(--mono);color:var(--faint)}.page-wide>.clients,.page-wide>.client-index{max-width:56rem}.client-index{margin-bottom:3.5rem}.client-index ol{list-style:none;border-top:1px solid var(--hair)}.client-index a{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;gap:1rem;align-items:baseline;padding:.8rem 0;border-bottom:1px solid var(--hair);text-decoration:none;transition:padding .25s var(--ease),color .2s ease}.client-index a:hover{padding-left:.5rem;color:var(--accent)}.client-index-n{font:400 calc(.7rem * var(--fs)) var(--mono);color:var(--faint)}.client-index-t{font:500 calc(1.15rem * var(--fs))/1.3 var(--display);font-variation-settings:"opsz" 24}.client-index-k{font:italic 400 calc(.98rem * var(--fs)) var(--text);color:var(--muted);text-align:right}.clients{display:grid;gap:6rem}.client{scroll-margin-top:calc(var(--bar-h) + 1.5rem)}.plate{display:block;position:relative;border-radius:.9rem;overflow:hidden;background:var(--tint);border:1px solid var(--hair);text-decoration:none;box-shadow:0 1px 2px #0000000a,0 18px 40px -18px #00000038;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}.plate:hover{transform:translateY(-3px);box-shadow:0 2px 4px #0000000d,0 28px 60px -20px #0000004d}.plate:active{transform:translateY(-1px) scale(.995)}.plate-bar{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;font:400 .66rem/1 var(--mono);letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--hair);background:var(--paper)}.plate-bar span:last-child{color:var(--accent);opacity:0;transform:translate(-4px);transition:opacity .25s ease,transform .25s var(--ease)}.plate:hover .plate-bar span:last-child{opacity:1;transform:none}.plate img{width:100%;height:auto;max-height:34rem;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;transition:transform 1.2s var(--ease)}.plate:hover img{transform:scale(1.015)}:root[data-theme=dark] .plate img,:root[data-theme=dark] .photo-link img,:root[data-theme=dark] .figure img,:root[data-theme=dark] .portrait,:root[data-theme=dark] .prose img{filter:brightness(.86) saturate(.92)}:root[data-theme=dark] .photo-link:hover img,:root[data-theme=dark] .plate:hover img{filter:none}.client-caption{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.25rem;align-items:baseline;margin-top:1.4rem}.client-n{font:300 calc(2.6rem * var(--fs))/1 var(--display);font-variation-settings:"opsz" 144,"SOFT" 50;color:var(--faint);font-variant-numeric:lining-nums}.client-name h2{font:500 calc(1.6rem * var(--fs))/1.2 var(--display);font-variation-settings:"opsz" 36;letter-spacing:-.012em}.client-visit{font-size:calc(.95rem * var(--fs));white-space:nowrap}.client-status{font:400 calc(.66rem * var(--fs)) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.client-spread{display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:2.5rem;margin-top:1.1rem;padding-left:calc(2.6rem * var(--fs) + 1.25rem)}.client-spread .highlights{margin-top:.9rem}.client-meta{display:grid;gap:1.1rem;align-content:start;margin:0;padding-left:1.25rem;border-left:1px solid var(--hair)}.client-meta dt{font:400 .64rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:.35rem}.client-meta dd{margin:0;display:grid;gap:.15rem;font:400 calc(.78rem * var(--fs))/1.5 var(--mono);color:var(--muted)}.photo-gallery{display:flex;gap:.5rem;margin-top:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.25rem;scrollbar-width:thin}.photo-link{flex:none;scroll-snap-align:start;border-radius:.5rem;overflow:hidden;display:block}.photo-link img{width:12rem;height:8rem;-o-object-fit:cover;object-fit:cover;transition:transform .4s var(--ease),opacity .2s ease}.photo-link:hover img{transform:scale(1.03)}.photo-link:active img{opacity:.8}.more-content{margin-top:.9rem}.more-content>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;font:400 calc(.72rem * var(--fs))/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.more-content>summary::-webkit-details-marker{display:none}.more-content>summary:before{content:"+";font-size:calc(.95rem * var(--fs));color:var(--accent);transition:transform .2s var(--ease);display:inline-block}.more-content[open]>summary:before{transform:rotate(45deg)}.more-content[open]>summary{margin-bottom:.75rem;color:var(--ink)}.more-content>p:not(.stack),.more-content>ul{font-size:calc(1rem * var(--fs))}.project-highlights{list-style:none;display:grid;gap:.35rem;margin:.5rem 0;font-size:calc(1rem * var(--fs))}.project-highlights li:before{content:"– ";color:var(--faint)}.project-stack{font:400 calc(.72rem * var(--fs))/1.6 var(--mono);color:var(--muted);margin-top:.5rem}.job-contribution{margin-top:.5rem}.architecture-diagram,.mermaid-fallback{margin-top:.9rem;padding:.75rem;border:1px solid var(--hair);border-radius:.6rem;overflow-x:auto;font-size:calc(.75rem * var(--fs))}.architecture-diagram svg{max-width:100%;height:auto}.writing-controls{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:.75rem}.writing-controls .sentence{margin:0}.drum{position:relative;height:8.25rem;width:7rem;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;perspective:300px;-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}.drum::-webkit-scrollbar{display:none}.drum ol{list-style:none;padding:44px 0;margin:0}.drum li{height:44px;display:grid;place-items:center;scroll-snap-align:center;font-size:calc(2rem * var(--fs));line-height:1;color:var(--muted);cursor:pointer}.drum li.is-on{color:var(--ink)}.drum-window{position:absolute;left:0;right:0;top:44px;height:44px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);pointer-events:none}.post-head{display:grid;gap:.9rem;padding-top:1rem;margin-bottom:2rem}.post-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font:400 calc(.7rem * var(--fs))/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.post-meta .back{color:var(--ink);text-decoration:none}.post-meta .back:hover{color:var(--accent)}.post-dek{font:italic 400 calc(1.3rem * var(--fs))/1.45 var(--text);color:var(--muted)}.draft-note{font:400 calc(.72rem * var(--fs))/1.5 var(--mono);color:var(--accent)}.post-video{display:grid;gap:.75rem;margin-bottom:2rem}.post-video video{width:100%;aspect-ratio:16 / 9;background:var(--tint);border-radius:.75rem}.chapters{list-style:none;display:grid;gap:.1rem}.chapters a{display:flex;gap:1rem;padding:.35rem 0;text-decoration:none;font-size:calc(1rem * var(--fs))}.chapters a span{font:400 calc(.75rem * var(--fs))/1.9 var(--mono);color:var(--accent);min-width:3rem}.section-scrubber{position:sticky;top:var(--bar-h);z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end;margin:0 0 1.5rem;padding:.5rem 0 .4rem;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%)}.ss-ruler{position:relative;height:2.1rem;cursor:pointer;touch-action:none}.ss-ticks{position:absolute;left:0;right:0;bottom:.35rem;height:.5rem;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.ss-ticks i{width:1px;height:.25rem;background:var(--hair)}.ss-mark{position:absolute;bottom:.35rem;width:1px;height:.85rem;background:var(--faint);text-decoration:none}.ss-mark span{position:absolute;bottom:1.05rem;left:0;transform:translate(-2px);font:400 calc(.6rem * var(--fs)) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;max-width:9rem;overflow:hidden;text-overflow:ellipsis;transition:color .15s ease;opacity:0;transition:opacity .2s ease,color .15s ease}.ss-mark.is-on span,.ss-mark:hover span,.ss-mark:focus-visible span{opacity:1;color:var(--ink)}.ss-mark.is-end span{left:auto;right:0;transform:translate(2px)}.ss-head{position:absolute;left:0;bottom:.1rem;width:2px;height:1.4rem;margin-left:-1px;background:var(--accent);border-radius:1px;pointer-events:none;will-change:transform}.ss-left{font:500 calc(.7rem * var(--fs)) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;padding-bottom:.25rem}.prose{display:grid;gap:1.1rem;font-size:calc(1.2rem * var(--fs));line-height:1.7;text-wrap:pretty}.prose h2{font:450 calc(1.55rem * var(--fs))/1.2 var(--display);font-variation-settings:"opsz" 36,"SOFT" 50;letter-spacing:-.012em;margin-top:1.5rem;scroll-margin-top:calc(var(--bar-h) + 4rem)}.prose blockquote{margin:.5rem 0;padding-left:1.1rem;border-left:2px solid var(--accent);font:italic 400 calc(1.45rem * var(--fs))/1.35 var(--display);font-variation-settings:"opsz" 36,"SOFT" 100,"WONK" 1}.prose ul,.prose ol{padding-left:1.25rem;display:grid;gap:.35rem}.prose pre{overflow-x:auto;padding:1rem;border-radius:.6rem;background:var(--tint);font-size:calc(.85rem * var(--fs))}.prose pre code{background:none;padding:0}.prose img{border-radius:.6rem}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--hair)}.post-nav-item{display:grid;gap:.3rem;text-decoration:none;font:500 calc(1.1rem * var(--fs))/1.3 var(--display);font-variation-settings:"opsz" 24}.post-nav-item span{font:400 calc(.66rem * var(--fs)) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.post-nav-item.next{text-align:right}.post-nav-item:hover{color:var(--accent)}.colophon{max-width:calc(var(--measure) + 2.5rem);margin:0 auto;padding:2rem 1.25rem calc(3rem + env(safe-area-inset-bottom));border-top:1px solid var(--hair);display:grid;gap:.5rem;font:italic 400 .95rem/1.55 var(--text);color:var(--muted)}.colophon-meta{font:400 .68rem var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}@media (max-width: 760px){:root{--bar-h: 3.1rem}.sitebar-in{gap:.9rem;flex-wrap:wrap}.sitenav{order:3;width:calc(100% + .8rem);margin:0 -.4rem;gap:.95rem;justify-content:space-between}.sitenav a{letter-spacing:.04em;font-size:.68rem}.themeglyph{margin-left:auto}.page{padding-top:1.5rem}.hero{grid-template-columns:1fr;gap:1.25rem}.portrait{width:4.5rem;order:-1;border-radius:.55rem}.row{grid-template-columns:3.6rem minmax(0,1fr)}.row .row-meta{grid-column:2;padding-top:.35rem}.year{font-size:calc(1.3rem * var(--fs))}.skill{grid-template-columns:1fr;gap:.75rem}.project-in{grid-template-columns:1fr}.project-margin{grid-auto-flow:column;justify-content:start;align-items:baseline;gap:.75rem}.tenure-head{grid-template-columns:minmax(0,1fr) auto}.tenure-date{grid-column:1 / -1;grid-template-columns:auto 6rem auto;align-items:center;gap:.75rem;padding:0 0 .5rem}.tenure-track{width:6rem}.tenure-inner{padding-left:0}.post-nav{grid-template-columns:1fr}.themeglyph-mode{display:none}.letter{top:auto;bottom:0;width:100vw;max-height:88dvh;border-radius:.9rem .9rem 0 0;transform:translate(-50%,var(--off));background-image:none}.letter-body{padding:1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom))}.client-index-k{display:none}.client-caption{grid-template-columns:auto minmax(0,1fr)}.client-caption .client-visit,.client-caption .client-status{grid-column:2}.client-spread{grid-template-columns:1fr;padding-left:0;gap:1.5rem}.client-meta{padding-left:0;border-left:0;border-top:1px solid var(--hair);padding-top:1rem}.post-nav-item.next{text-align:left}}@media (max-width: 480px){.sentence{position:relative}.sentence-menu{position:static}.sentence-list{left:0;right:0;min-width:0}}@media (max-width: 420px){.sitenav{gap:.6rem}.sitenav a{font-size:.64rem;letter-spacing:.02em}}@media (max-width: 350px){.sitenav a{font-size:.6rem;letter-spacing:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-reduced-transparency: reduce){.sitebar,.sheet,.sentence-list,.section-scrubber{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper)}}@media (prefers-contrast: more){:root{--muted: #4A453D;--faint: #5E594F;--hair: #BDB5A6}:root[data-theme=dark]{--muted: #C9C1B3;--faint: #A39B8E;--hair: #4A453D}}
