.shot__caption{font-family:var(--mono);color:var(--ink-quiet);margin:.5rem 0 0;font-size:.75rem;line-height:1.5}@font-face{font-family:Switzer;src:url(/fonts/Switzer-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/CommitMono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Commit Mono;src:url(/fonts/CommitMono-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--ground:#f6f7f8;--ground-sunk:#eef0f2;--plate:#e4e7eb;--ink:#14171a;--ink-mid:#474e57;--ink-quiet:#5a626c;--field-add:#e3f0e4;--mark-add:#1d6b33;--field-rem:#f4e7e1;--mark-rem:#8f4a2a;--link:#1b4d8f;--link-tint:#e3ebf5;--rule:#dde1e6;--rule-strong:#a8b0b8;--mono:"Commit Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans:"Switzer", system-ui, sans-serif;--round:8px;--round-lg:16px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--gutter-w:1.5rem;--mark-w:.75rem;--measure:68ch;color-scheme:light;accent-color:var(--link)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-variant-numeric:tabular-nums;margin:0;font-size:1rem;line-height:1.5}::selection{background:var(--link-tint);color:var(--ink)}:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:1px}a{color:var(--ink);text-decoration:underline 1px dotted;text-decoration-color:var(--ink-quiet);text-underline-offset:.28em}a:hover{text-decoration-style:solid;text-decoration-color:var(--ink)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--ground-sunk)}::-webkit-scrollbar-thumb{background:var(--rule-strong);border:3px solid var(--ground-sunk);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--ink-quiet)}*{scrollbar-color:var(--rule-strong) var(--ground-sunk)}.sheet{max-width:calc(var(--measure) + 6rem);margin-inline:auto;padding:clamp(1.5rem,4vw,3.5rem) clamp(1rem,4vw,2.5rem) 8rem}.skip-link{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus-visible{clip-path:none;width:auto;height:auto;font-family:var(--mono);margin-bottom:1.5rem;font-size:.75rem;display:inline-block;position:static;overflow:visible}.masthead{margin-bottom:1.5rem}.whoami{letter-spacing:0;margin:0;font-size:1rem;font-weight:600;line-height:1.5}.whoami--role{color:var(--ink-quiet);font-weight:400}.crow--intro{padding-block:0 1rem}.crow--intro .prose,.crow--note .prose{margin:0}.topnav{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.section{margin-block:clamp(2.25rem,5vw,3.25rem) 0}.section__label{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-quiet);border-block-end:1px solid var(--rule);margin:0;padding-block-end:.5rem;font-size:.75rem;font-weight:400}.row{padding-block:clamp(3.5rem,7vw,5rem) 0}.section ul>.row:first-child{padding-block-start:clamp(1.25rem,2.5vw,1.75rem)}.row__meta{font-family:var(--mono);color:var(--ink-mid);margin:.5rem 0 0;font-size:.75rem;line-height:1.55}.row__meta--lead{margin-top:0}.row__title{letter-spacing:-.025em;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:500;line-height:1.25}.row__title a{color:inherit;text-decoration:none}.row__title a:hover,.row__title a:focus-visible{text-decoration:underline 2px}.row__body{max-width:var(--measure);margin:.5rem 0 0}.card{max-width:var(--measure)}.row--linked .card{z-index:0;cursor:pointer;position:relative}.row--linked .card:before{content:"";z-index:-1;border-radius:var(--round-lg);background:var(--ground-sunk);opacity:0;transition:opacity .18s var(--ease-out);position:absolute;inset:-1rem -1.25rem}.row--linked .card:hover:before,.row--linked .card:has(:focus-visible):before{opacity:1}.row--linked .card__title a:after{content:"";position:absolute;inset:-1rem -1.25rem}.reactions{z-index:1;position:relative}.card__headline{font-family:var(--mono);letter-spacing:0;flex-wrap:wrap;gap:.25rem .75rem;margin:0 0 .5rem;font-size:.875rem;line-height:1.5rem;display:flex}.card__name{color:var(--ink)}.card__dates{color:var(--ink-quiet)}.card__body{padding-block:0}.crow{grid-template-columns:var(--gutter-w) var(--mark-w) minmax(0, 1fr);align-items:baseline;column-gap:.75rem;padding-inline:.75rem;display:grid}.crow--shot{align-items:start}.crow--anchor{scroll-margin-top:calc(clamp(1.5rem,4vw,3.5rem) + 5rem)}.crow--note{padding-block:1rem 1.5rem}.crow--lede{padding-block:.5rem 1.5rem}.crow__no{font-family:var(--mono);text-align:right;color:var(--ink-quiet);user-select:none;font-variant-numeric:tabular-nums;font-size:.75rem;line-height:1.5}.crow--flush{padding:1.5rem 0 0}.card__title{text-wrap:wrap;letter-spacing:-.025em;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:500;line-height:1.25}.card__title a{color:inherit;text-decoration:none}.card__title a:hover,.card__title a:focus-visible{text-decoration:underline 2px}.card__lede{max-width:62ch;margin:0}.hunk{border-radius:var(--round);padding-block:.5rem;overflow:hidden}.hunk+.hunk{margin-block-start:.5rem}.hunk--rem{background:var(--field-rem)}.hunk--add{background:var(--field-add)}.hunk__line{grid-template-columns:var(--gutter-w) var(--mark-w) minmax(0, 1fr);align-items:baseline;column-gap:.75rem;padding:.25rem .75rem;display:grid}.hunk__line p{font-family:var(--mono);letter-spacing:-.01em;margin:0;font-size:.875rem;line-height:1.5rem}.hunk__no{font-family:var(--mono);text-align:right;color:var(--ink-quiet);user-select:none;font-variant-numeric:tabular-nums;font-size:.75rem}.hunk__mark{font-family:var(--mono);user-select:none;font-size:.875rem;font-weight:700;line-height:1.5rem}.hunk--rem .hunk__mark{color:var(--mark-rem)}.hunk--add .hunk__mark{color:var(--mark-add)}.thread{border-radius:var(--round);background:#fff;max-width:58ch;margin:1.5rem 0 0;padding:.75rem}.thread__who{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin-block-end:.5rem;display:flex}.thread__who b{font-size:1rem;font-weight:600}.thread__who span{font-family:var(--mono);color:var(--ink-quiet);font-size:.75rem}.thread__said p,.quote p{margin:0}.shot{background:var(--plate);border-radius:var(--round);justify-content:center;align-items:center;height:clamp(12rem,42vw,20rem);margin:0;padding:clamp(1rem,3vw,1.5rem);display:flex}.shot--free{height:auto}.shot img{object-fit:contain;border-radius:3px;width:auto;min-width:0;max-width:100%;height:auto;max-height:100%;display:block}.shot--free img{max-height:32rem}.shot img{transition:opacity .32s var(--ease-out)}.shot img.is-loading{opacity:0}.shot--tall img{max-width:20rem;max-height:none}.crow--shot{padding-block:1rem 1.5rem}.crow--shot .crow__no{line-height:2.2}.reactions{gap:.5rem;display:flex}.reaction{border:1px solid var(--rule);background:var(--ground);color:var(--ink-quiet);font:inherit;font-family:var(--mono);cursor:pointer;transition:border-color .16s ease, transform .14s var(--ease-out);border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1.5;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.reaction:hover{border-color:var(--rule-strong)}}.reaction:active{transform:scale(.94)}.reaction__glyph{font-size:.75rem;line-height:1}.reaction__spark{pointer-events:none;width:0;height:0;animation:spark-x var(--dur) linear forwards, spark-fade var(--dur) linear forwards;position:absolute;top:50%;left:50%}.reaction__spark>span{animation:spark-y var(--dur) linear forwards;font-size:1rem;line-height:1;display:block;position:absolute}@keyframes spark-x{0%{animation-timing-function:cubic-bezier(.23,1,.32,1);transform:translate(0)}40%{transform:translateX(var(--x));animation-timing-function:cubic-bezier(.5,0,.75,.55)}to{transform:translate(0)}}@keyframes spark-y{0%{animation-timing-function:cubic-bezier(.23,1,.32,1);transform:translate(-50%,-50%)translateY(0)scale(.5)rotate(0)}40%{transform:translate(-50%, -50%) translateY(var(--y)) scale(var(--s)) rotate(calc(var(--r) * .42));animation-timing-function:cubic-bezier(.5,0,.75,.55)}to{transform:translate(-50%, -50%) translateY(0) scale(.22) rotate(var(--r))}}@keyframes spark-fade{0%,82%{opacity:1}to{opacity:0}}.figures{flex-wrap:wrap;gap:.5rem 2rem;margin-block-start:1.5rem;display:flex}.figure{font-family:var(--mono);letter-spacing:-.01em;color:var(--ink);align-items:baseline;gap:.5rem;font-size:.875rem;line-height:1.5rem;display:flex}.figure b{font-variant-numeric:tabular-nums;font-weight:400}.heading{text-wrap:wrap;letter-spacing:-.02em;margin:0;font-size:clamp(1.25rem,2.4vw,1.5rem);font-weight:500;line-height:1.2}.figures,.figure{margin:0}.figure b{font-variant-numeric:tabular-nums;margin-inline-end:.5rem;font-weight:400}.display{letter-spacing:-.03em;text-wrap:balance;max-width:20ch;margin:0;font-size:clamp(2rem,6vw,3.5rem);font-weight:600;line-height:1.05}.prose{max-width:var(--measure)}.lede{max-width:var(--measure);color:var(--ink-mid);margin:1.5rem 0 0}h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0}h3{font-size:1rem;font-weight:600}.ext{vertical-align:-.04em;width:.9em;height:.9em;color:var(--ink);margin-inline-start:.15em;display:inline-block}.nowrap{white-space:nowrap}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}small,.quiet{color:var(--ink-quiet)}blockquote,blockquote p{margin:0}.contact{margin-block-start:1rem}.contact .crow{padding-block:0 .5rem}.contact a{justify-self:start}.cv>.row{padding-block:clamp(1.5rem,3vw,2rem) 0}.cv__links{font-family:var(--mono);color:var(--ink-quiet);margin:.75rem 0 0;font-size:.75rem;line-height:1.75}.cv__meta{font-family:var(--mono);color:var(--ink-quiet);margin-block-start:.25rem;font-size:.75rem;line-height:1.5;display:block}ul{margin:0;padding:0;list-style:none}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}60%{opacity:1}to{transform:translateY(0)}}::view-transition-old(root){animation-duration:.18s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation:page-in .3s var(--ease-out) both}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=34rem){.row{padding-block:3rem 0}.figures{flex-direction:column;gap:.25rem}.hunk__line,.thread-row,.crow,.card__text{padding-inline:.5rem}.crow--flush{padding-inline:0}.row--linked .card:before,.row--linked .card__title a:after{inset-inline:-.75rem}}
