@font-face{font-family:Geist;src:url('/assets/geist-regular.b5e4774c82.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Geist;src:url('/assets/geist-semibold.7e5b14c5d2.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('/assets/geist-mono-regular.38c3922851.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:light;--bg:#e8ebe1;--ink:#1b1f17;--muted:#4d5345;--line:#a9af9c;--accent:#596348;--select:color-mix(in srgb,var(--ink) 10%,transparent);--panel:#dde2d5;--grid:#9fa793;--orbit:#a8b29c;--light:#bcc8ae;--hit:#ffffff;--sans:Geist,system-ui,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;--ease:cubic-bezier(.2,0,0,1);--hover:120ms;--press:80ms;--gutter:44px}
:root[data-theme="dark"]{color-scheme:dark;--bg:#1b201b;--ink:#e3e8da;--muted:#b1bba9;--line:#59644f;--accent:#c2d2b0;--select:color-mix(in srgb,var(--ink) 22%,transparent);--panel:#252d22;--grid:#56624d;--orbit:#6b7b5e;--light:#486039}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#1b201b;--ink:#e3e8da;--muted:#b1bba9;--line:#59644f;--accent:#c2d2b0;--select:color-mix(in srgb,var(--ink) 22%,transparent);--panel:#252d22;--grid:#56624d;--orbit:#6b7b5e;--light:#486039}}
*{box-sizing:border-box}
::selection{background-color:var(--select)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:28px;scrollbar-gutter:stable;overflow-x:clip}
html.arriving{scroll-behavior:auto}
.lg[id]{scroll-margin-top:38svh}
html.overlay-open{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure,blockquote,dl,dd,ol{margin:0}
ol{padding:0;list-style:none}
h1,h2,h3{font-weight:400}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
a,button{-webkit-tap-highlight-color:transparent}
:is(a,button,[tabindex]):not(:where([tabindex="-1"])):focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}
main:focus,footer:focus{outline:0}
.shell{display:flex;flex-direction:column;min-height:100svh;max-width:1200px;margin:auto;padding:0 var(--gutter);container-type:inline-size;container-name:site-shell}
.shell>main{flex:1 0 auto}
.skip{position:fixed;z-index:50;left:16px;top:10px;padding:10px 16px;background:var(--ink);color:var(--bg);transform:translateY(-160%)}
.skip:focus{transform:none}
.skip:not(:focus){clip-path:inset(50%)}
.text-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline 1px;text-underline-offset:.24em;text-decoration-color:color-mix(in srgb,var(--line) 75%,transparent);transition:transform var(--hover) var(--ease),text-decoration-color var(--hover) var(--ease)}
.text-link:active{transform:translateY(1px);text-decoration-color:var(--ink);transition-duration:var(--press)}
@media(hover:hover){.text-link:hover{transform:translate(1px,-1px);text-decoration-color:var(--ink)}.text-link:hover:active{transform:translateY(1px)}}
.lg-keep{white-space:nowrap}
.prose .text-link{display:inline;min-height:0;text-decoration-color:var(--line)}
@media(hover:hover){.prose .text-link:hover{transform:none;text-decoration-color:var(--ink)}}
.prose p+p,.prose p+blockquote,.prose blockquote+p{margin-top:.8em}
.prose code{font:400 .88em var(--mono)}
.prose pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:400 12px/1.6 var(--mono)}
.prose pre:has(>code.language-console){padding:18px 20px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:13px;overflow-x:auto}
.prose pre>code{font:inherit}
.prose{overflow-wrap:anywhere}
.prose blockquote{padding-left:16px;border-left:1px solid var(--line)}
.masthead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:44px}
.identity-heading{font:inherit;min-width:0}
.identity{display:inline-flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 14px;padding:2px 0}
.name{font:400 38px/1.1 var(--sans);letter-spacing:-.012em}
body:not(.home) .identity{column-gap:12px}
.controls{display:flex;flex:none;align-items:center;gap:18px;margin-top:4px;color:var(--muted)}
html:not(.js) .controls .ts{display:none}
.controls-rule{display:none;width:1px;height:14px;background:var(--line)}
.controls .ts{margin:0 -8px}
.site-nav{display:flex;align-items:center;gap:16px}
#projects,#links{scroll-margin-top:-12px}
.js .controls-rule{display:block}
.contact-button{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 2px;color:var(--ink);font-size:15px;text-decoration:underline 1px;text-underline-offset:.3em;text-decoration-color:transparent;transition:text-decoration-color var(--hover) var(--ease)}
.contact-button:active,.contact-button[aria-current="page"]{text-decoration-color:var(--ink)}
@media(hover:hover){.contact-button:hover{text-decoration-color:var(--ink)}}
.collection{margin-top:52px}
.collection-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:6px}
.collection-head h2{font:400 34px/1.2 var(--sans);letter-spacing:normal;color:var(--ink)}
.collection-head h1{font:400 34px/1.2 var(--sans);letter-spacing:normal}
.projects{display:flex;flex-direction:column}
:root.js .collection[data-view="index"] .collection-grid{display:none}
.project{padding:22px 0 60px;border-top:1px solid var(--line);scroll-margin-top:28px}
.project-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;min-width:0}
.project-title>.tags{align-self:center}
.tags{display:inline-flex;flex-wrap:wrap;gap:6px}
.tag{position:relative;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:3px;background:none;color:var(--muted);font:400 11px/1 var(--mono);letter-spacing:.02em;cursor:pointer;transition:color var(--hover) var(--ease),border-color var(--hover) var(--ease),background-color var(--hover) var(--ease)}
.tag::before{content:'';position:absolute;inset:-10px -3px}
.tag>span{text-box:trim-both cap alphabetic}
.tag[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--bg)}
@media(hover:hover){.tag:hover{border-color:var(--muted);color:var(--ink)}.tag[aria-pressed="true"]:hover{color:var(--bg)}}
.tag:active{transform:translateY(.5px)}
.tag-filter{display:inline-flex;align-items:center;margin-left:auto}
.tag-filter[hidden]{display:none}
.tag-out{display:none!important}
.project h3{font-size:27px;line-height:1.15;letter-spacing:-.02em}
.frame{display:block}
.frame[hidden]{display:none}
.index{display:none}
:root.js .collection[data-view="index"] .collection-index{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:10px}
.index-entry{display:grid;grid-template-columns:5.5ch minmax(0,1fr) auto;column-gap:18px;align-items:baseline;padding:12px 0 14px}
@media(max-width:700px){.index-entry{grid-template-columns:5.5ch minmax(0,1fr);column-gap:12px}}
.stage{position:relative;display:block;max-width:100%}
.stage picture{display:contents}
.stage:is(.pending,.arrived){background-color:var(--tone-now)}
.stage img,.stage video{display:block;max-width:100%;height:auto}
.stage{--region-rest:.6}
.stage-clip video{position:relative;width:100%}
.clip-controls{position:absolute;z-index:2;left:8px;bottom:8px;display:flex;gap:4px;opacity:0;transition:opacity 140ms var(--ease)}
.stage-clip:hover .clip-controls,.clip-controls:focus-within{opacity:1}
.clip-controls button{display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid color-mix(in srgb,#fff 45%,transparent);border-radius:3px;background:rgba(16,17,19,.55);color:#fff;cursor:pointer}
.clip-controls svg{width:16px;height:16px}
.clip-controls button:active{transform:translateY(1px)}
.clip-toggle .g-play{transform:translateX(-.7px)}
.clip-mute[data-state="none"]{display:none}
.clip-toggle[aria-pressed="true"] .g-play,.clip-toggle[aria-pressed="false"] .g-pause{display:none}
.clip-mute .g-waves,.clip-mute .g-slash{display:none}
.clip-mute[data-state="on"] .g-waves{display:inline}
.clip-mute[data-state="on"] .g-x,.clip-mute[data-state="none"] .g-x{display:none}
.clip-mute[data-state="none"] .g-waves,.clip-mute[data-state="none"] .g-slash{display:inline}
.clip-mute[aria-disabled="true"]{opacity:.5;cursor:default;pointer-events:none}
@media(hover:none){.clip-controls{pointer-events:none}}
@media(prefers-reduced-motion:reduce){.clip-controls{transition:none}}
.set-page{padding-bottom:40px}
.set-head{padding:56px 0 8px}
.set-title{font-size:40px;line-height:1.1;letter-spacing:-.012em;overflow-wrap:anywhere}
.set-items{display:flex;flex-direction:column;gap:56px;margin-top:48px}
.item{scroll-margin-top:24px;min-width:0}
.item:focus{outline:0}
.set-items{--max-h:min(calc(100svh - 72px),1200px)}
.stage:is([data-stage="loom-rs-lens"],[data-stage="loom-rs-clip"]){box-shadow:0 0 0 1px var(--line)}
.item figcaption{max-width:62ch;margin-top:10px}
.set-items{container-type:inline-size}
:is(.set-items,.group-items)>:is(:first-child,:not(.item-link)+.item-link):has(>.cx-row){border-top:1px solid var(--line)}
.item-set{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0 40px;padding-top:22px;border-top:1px solid var(--line)}
@media(min-width:1100px){.set-items>.item-set~:not(.item-set){margin-left:260px}}
.set-items>.item-set+:not(.item-set){padding-top:22px;border-top:1px solid var(--line)}
@media(min-width:1100px){.set-items>.item-set+:not(.item-set){border-image:linear-gradient(var(--line),var(--line)) 1 / 1px 0 0 / 0 0 0 260px}}
@media(max-width:1099px){.item-set{grid-template-columns:minmax(0,1fr);gap:14px}}
.stage:not(.stage-clip):has([data-region].sel){cursor:default}
.item-post{min-width:0}
.post-card{position:relative;display:flex;flex-direction:column;gap:12px;max-width:560px;padding:14px 16px 12px;border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,var(--panel) 55%,transparent);font-size:14px;line-height:1.45;color:var(--ink)}
.pc-post,.pc-next,.pc-parent{display:flex;flex-direction:column;gap:10px;min-width:0}
.pc-head{display:flex;align-items:center;gap:10px;min-width:0}
.pc-avatar{flex:none;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--line) 45%,transparent)}
.pc-who{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.pc-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-handle{font:400 12px/1.35 var(--mono);color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(hover:hover){.pc-handle:hover{color:var(--ink)}}
.pc-corner{margin-left:auto;align-self:flex-start;display:none;align-items:center;gap:8px}
.pc-corner .pc-via{display:none}
.post-card .lg{--lg-h:max(var(--lg-size,.56em),var(--lg-min,7px));bottom:var(--lg-bottom,calc(var(--lg-mid,.3547em) - var(--lg-h) / 2));width:calc(var(--lg-h) * var(--lg-ratio,1));height:var(--lg-h)}
.post-card .lg[data-glyph="bluesky"]{--lg-ratio:1.125;--lg-size:0.5882em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.002%200.664%2012.004%2010.675%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.5)%27%3E%3Cpath%20d%3D%27M12%2010.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944%201.561%201.266.902%201.565.139%201.908%200%203.08%200%203.768c0%20.69.378%205.65.624%206.479.815%202.736%203.713%203.66%206.383%203.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387%202.005-2.83%207.078%205.013%205.19%206.87-1.113%207.823-4.308.953%203.195%202.05%209.271%207.733%204.308%204.267-4.308%201.172-6.498-2.74-7.078a8.741%208.741%200%200%201-.415-.056c.14.017.279.036.415.056%202.67.297%205.568-.628%206.383-3.364.246-.828.624-5.79.624-6.478%200-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3%201.24C16.046%204.748%2013.087%208.687%2012%2010.8Z%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.post-card .lg[data-glyph="x"]{--lg-ratio:1.107;--lg-size:0.5588em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.007%200.572%2012.014%2010.858%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.5)%27%3E%3Cpath%20d%3D%27M18.901%201.153h3.68l-8.04%209.19L24%2022.846h-7.406l-5.8-7.584-6.638%207.584H.474l8.6-9.83L0%201.154h7.594l5.243%206.932ZM17.61%2020.644h2.039L6.486%203.24H4.298Z%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.pc-context{margin:-4px 0 0;font-size:13px;line-height:1.35;color:var(--muted)}
.pc-context .text-link{color:inherit}
.pc-text{overflow-wrap:anywhere}
.pc-text .text-link,.pc-foot .text-link{display:inline;min-height:0}
.pc-media{display:flex;gap:2px;border-radius:3px;overflow:hidden}
.pc-cell{position:relative;min-width:0;min-height:0}
.pc-media[data-shape="one"]>.pc-cell{flex:1 1 auto}
.pc-media[data-shape="one"] .post-photo{aspect-ratio:var(--pc-ratio);max-height:520px}
.pc-quote .pc-media[data-shape="one"] .post-photo{max-height:340px}
.pc-media:is([data-shape="three"],[data-shape="four"]){display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;aspect-ratio:3/2}
.pc-media:is([data-shape="three"],[data-shape="four"]) .post-photo{height:100%}
.pc-media>.pc-cell:nth-child(n+5){display:none}
.post-photo{position:relative;min-height:0;overflow:hidden;cursor:zoom-in;background:color-mix(in srgb,var(--line) 30%,transparent)}
.post-photo :is(img,video){display:block;width:100%;height:100%;object-fit:cover}
.pc-card{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:3px;color:inherit;text-decoration:none}
.pc-card img{width:64px;height:64px;object-fit:cover;border-radius:2px}
.pc-card-text{display:flex;flex-direction:column;min-width:0;font-size:13px}
.pc-card-host{font:400 11px/1.4 var(--mono);color:var(--muted)}
.pc-quote{display:flex;flex-direction:column;gap:6px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:3px;font-size:13.5px;line-height:1.45;min-width:0}
.pc-quote .pc-quote{font-size:13px;padding:8px 10px}
.pc-head-quote{gap:6px;flex-wrap:nowrap}
.pc-head-quote .pc-avatar{width:20px;height:20px}
.pc-head-quote .pc-who{flex-direction:row;align-items:baseline;gap:6px;min-width:0}
.pc-head-quote .pc-name{font-size:13.5px}
.pc-head-quote .pc-handle,.pc-head-quote .pc-date{font:400 12px/1.35 var(--mono);color:var(--muted);white-space:nowrap}
.pc-head-quote .pc-date{text-decoration:none}
@media(hover:hover){.pc-head-quote .pc-date:hover{color:var(--ink)}}
.pc-parent{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);font-size:14px;color:color-mix(in srgb,var(--ink) 82%,var(--bg))}
.pc-next{position:relative;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.pc-head-next .pc-date{font:400 12px/1.35 var(--mono);color:var(--muted)}
.pc-thread{display:flex;flex-direction:column;gap:12px;max-height:var(--pc-thread-max,560px);margin:0 -16px;padding:0 16px 2px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.pc-thread:focus-visible{outline-offset:-2px}
.post-card .pc-foot{position:static;isolation:auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0;padding:0;border:0;font:400 12px/1.6 var(--mono);color:var(--muted)}
.pc-act{display:inline;min-height:0;white-space:nowrap;color:var(--muted);text-decoration:underline 1px;text-decoration-style:solid;text-underline-offset:.24em;text-decoration-color:color-mix(in srgb,var(--line) 75%,transparent);transition:color var(--hover) var(--ease),transform var(--hover) var(--ease),text-decoration-color var(--hover) var(--ease)}
.pc-act:active{transform:translateY(1px);transition-duration:var(--press)}
@media(hover:hover){.pc-act:hover{color:var(--ink);transform:translate(1px,-1px);text-decoration-color:var(--ink)}.pc-act:hover:active{transform:translateY(1px)}}
.pc-via.pc-act{text-decoration-line:underline}
.pc-act .lg{text-decoration:none}
.pc-head-quote .pc-date{margin-left:auto;padding-left:8px}
.pc-counts{display:none;gap:12px}
.pc-via{margin-left:auto;color:var(--muted);text-decoration:none;white-space:nowrap}
.lg[data-glyph="arenablock"]{--lg-ratio:1;--lg-size:.75em;--lg-bottom:-.02em;--lg-gap:.3em;--lg-src:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%227 7 82 82%22%3E%3Cg transform=%22rotate%2810 40 40%29%22%3E%3Cpath d=%22M40 15V65M18.35 27.5L61.65 52.5M18.35 52.5L61.65 27.5%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%2211%22 stroke-linecap=%22square%22/%3E%3C/g%3E%3Crect x=%2264%22 y=%2265%22 width=%2222%22 height=%2222%22 fill=%22%23000%22/%3E%3C/svg%3E")}
.pc-via-corner{display:inline-flex;padding:2px;margin:-2px -4px 0 0}
.pc-via-corner .lg[data-glyph="arenablock"]{--lg-size:14px;margin:0}
@media(hover:hover){.pc-via:hover{color:var(--ink)}}
.pc-via .lg{margin-left:.34em}
.post-card .lg[data-glyph="arenablock"]{--lg-src:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%227 7 82 82%22%3E%3Cg transform=%22rotate%2810 40 40%29%22%3E%3Cpath d=%22M40 15V65M18.35 27.5L61.65 52.5M18.35 52.5L61.65 27.5%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%228%22 stroke-linecap=%22square%22/%3E%3C/g%3E%3Crect x=%2264%22 y=%2265%22 width=%2222%22 height=%2222%22 fill=%22%23000%22/%3E%3C/svg%3E")}
.pc-date-plat .lg:is([data-glyph="x"],[data-glyph="bluesky"]){--lg-mid:.44em}
.pc-tip{position:absolute;right:0;top:calc(100% + 5px);z-index:4;width:max-content;max-width:min(240px,calc(100vw - 48px));padding:4px 8px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);font:400 12px/1.4 var(--sans);white-space:normal;box-shadow:0 1px 8px rgba(0,0,0,.1);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 90ms var(--ease),visibility 0s 90ms}
.pc-via-corner .pc-tip{top:auto;bottom:calc(100% + 8px)}
.pc-via-off{position:relative;cursor:default}
.pc-via-off>.pc-via-id{opacity:.45}
.pc-via-go{color:inherit;cursor:pointer;outline-offset:3px;transition:color var(--hover) var(--ease)}
.pc-via-go>.lg{opacity:.45;transition:opacity var(--hover) var(--ease)}
.pc-via-off .pc-tip{top:auto;bottom:calc(100% + 6px)}
.pc-via-off:is(:hover,:focus-within) .pc-tip{opacity:1;visibility:visible;transition:opacity 90ms var(--ease),visibility 0s}
.pc-via-go:is(:hover,:focus-visible){color:var(--ink)}
.pc-via-off:has(>.pc-via-go:is(:hover,:focus-visible))>.pc-via-id{color:var(--muted)}
.pc-via-go:is(:hover,:focus-visible)>.lg{opacity:1}
.set-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-top:64px;padding-top:14px;border-top:1px solid var(--line)}
.set-nav .text-link{min-height:52px;text-decoration-color:transparent}
.set-nav .link-text{display:flex;flex-direction:column}
.set-nav-label{font:400 11px/1.6 var(--mono);color:var(--muted)}
.set-nav [rel="next"]{margin-left:auto;text-align:right}
.set-nav [rel="next"] .link-text{align-items:flex-end}
.key{font:400 12px/1 var(--mono)}
[data-loading]{opacity:.62;transition:opacity var(--hover) var(--ease)}
footer{position:relative;isolation:isolate;container:foot/inline-size;border-top:1px solid var(--line);padding:22px 0 40px;margin-top:24px;font-size:14px;scroll-margin-top:28px}
footer .text-link{white-space:nowrap}
.foot-names{display:flex;flex-wrap:wrap;justify-content:flex-end;column-gap:26px}
.foot-glyphs{display:none;justify-content:flex-end;margin-right:-11px;align-items:center}
.foot-glyphs .ae-icon{min-width:0;min-height:44px;padding:0 11px}
.foot-names .text-link[data-pressed],.foot-glyphs .ae-icon[data-pressed]{text-decoration-color:var(--ink);color:var(--ink);transform:translateY(1px);transition-duration:var(--press)}
@media(hover:none){.foot-names .text-link:active:not([data-pressed]){transform:none;text-decoration-color:color-mix(in srgb,var(--line) 75%,transparent)}}
::view-transition-group(morph){z-index:2;animation-duration:220ms;animation-timing-function:var(--ease)}
::view-transition-old(morph),::view-transition-new(morph){height:100%;animation-duration:220ms}
::view-transition-old(root),::view-transition-new(root){animation-duration:110ms}
.masthead{view-transition-name:masthead}
::view-transition-group(masthead){animation-duration:220ms}
@media(max-width:899px){.item-set{grid-template-columns:minmax(0,1fr);gap:14px}}
@media(max-width:700px){:root{--gutter:16px}html{scroll-padding-top:20px}.masthead{gap:12px;padding-top:16px}.controls{gap:10px;margin-top:-4px}.contact-button{font-size:14px}.name{font-size:28px}.collection{margin-top:36px}.project{padding:18px 0 42px}.project h3{font-size:22px}.collection-head :is(h1,h2){font-size:26px}.set-items{--max-h:75svh}.set-head{padding-top:32px}.set-title{font-size:31px}.set-items{gap:44px;margin-top:36px}footer{padding:18px 0 30px}.foot-names{column-gap:20px}}
@media(max-width:600px){.masthead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px}.identity{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 10px}.controls{display:contents}.controls .ts{grid-column:2;grid-row:1;align-self:center;margin-right:-8px}.controls-rule{display:none!important}.site-nav{grid-column:1/-1;grid-row:2;margin-left:-2px}}
@media(max-width:600px) and (pointer:coarse){.controls .ts{margin-right:-14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0s!important}.text-link,.text-link:hover,.text-link:active{transform:none!important}.contact-button:active,.pc-card:active{transform:none!important}}
@media(hover:hover) and (pointer:fine){:is(.in-gallery>.stage:not(.stage-clip),.has-side>.stage:not(.stage-clip,.stage-mark),.item-image:not(.in-gallery)>.stage:not(.stage-mark),.post-photo)::after{content:'';position:absolute;top:8px;right:8px;width:9px;height:9px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;filter:drop-shadow(0 0 1px rgba(0,0,0,.85)) drop-shadow(0 0 3px rgba(0,0,0,.35));opacity:calc(var(--cue,0)*.6);pointer-events:none;transition:opacity var(--hover) var(--ease),transform var(--hover) var(--ease)}:is(.in-gallery>.stage:not(.stage-clip),.has-side>.stage:not(.stage-clip,.stage-mark),.item-image:not(.in-gallery)>.stage:not(.stage-mark),.post-photo):hover::after{opacity:.95;transform:translate(2px,-2px)}}
@media(min-width:701px){.project:has(>:is(.cx-body,.arenablock-body,.receipt-body)){display:grid;grid-template-columns:minmax(0,var(--cl-media,340px)) minmax(0,var(--cl-text,1fr));column-gap:var(--cl-gap,32px)}.project:has(>:is(.cx-body,.arenablock-body)){--cl-media:260px}.project:has(>.receipt-body){--cl-media:1.2fr;--cl-gap:56px}.project>:is(.cx-body,.arenablock-body,.receipt-body){display:contents}.project:has(>:is(.cx-body,.arenablock-body,.receipt-body)){grid-template-rows:auto 1fr}.project:has(>.receipt-body){grid-template-columns:fit-content(calc((100% - 56px) * .545)) minmax(0,1fr)}}
.stage-clip{cursor:zoom-in}
.stage-clip .clip-controls button{cursor:pointer}
.project:has(>.receipt-body):not(:has(.frame-excerpt)){grid-template-rows:auto 1fr}
::view-transition-group(overlay-backdrop){animation-duration:120ms}
.lr{content-visibility:auto;contain-intrinsic-size:auto calc(var(--lr-h,600px) + 130px)}
.set-items>.item-set{content-visibility:auto;contain-intrinsic-size:auto 900px}
.lr,.set-items>.item-set{overflow-clip-margin:200px}
mark{background:var(--select);color:inherit;padding:0 .08em;border-radius:1px}
@media(hover:hover) and (pointer:fine){:is(.rel-strip,.mb-strip){cursor:grab}}
:root{--lg-gap:.3em;--lg-rest:.74;--lg-ease:var(--ease,cubic-bezier(.2,0,0,1));--lg-time:var(--hover,120ms)}
:root[data-theme="dark"]{--lg-rest:.8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--lg-rest:.8}}
.lg{--lg-h:max(var(--lg-size,.56em),var(--lg-min,7px));display:inline-block;position:relative;bottom:var(--lg-bottom,calc(var(--lg-mid,.3547em) - var(--lg-h) / 2));width:calc(var(--lg-h) * var(--lg-ratio,1));height:var(--lg-h);margin-left:var(--lg-gap);margin-right:.08em;vertical-align:baseline}
.lg::before{content:none}
.lg::after{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask:var(--lg-src) center/contain no-repeat;mask:var(--lg-src) center/contain no-repeat;opacity:var(--lg-rest);transition:opacity var(--lg-time) var(--lg-ease)}
a:is(:hover,:focus-visible,:active) .lg::after{opacity:1}
@media (prefers-reduced-motion:reduce){.lg::after{transition:none}}
@media (forced-colors:active){.lg::after{background:LinkText;opacity:1}}
.lg[data-glyph="github"]{--lg-ratio:1.026;--lg-size:0.6471em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.011%200.139%2012.021%2011.722%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.5)%27%3E%3Cpath%20d%3D%27M12%20.297c-6.63%200-12%205.373-12%2012%200%205.303%203.438%209.8%208.205%2011.385.6.113.82-.258.82-.577%200-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422%2018.07%203.633%2017.7%203.633%2017.7c-1.087-.744.084-.729.084-.729%201.205.084%201.838%201.236%201.838%201.236%201.07%201.835%202.809%201.305%203.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93%200-1.31.465-2.38%201.235-3.22-.135-.303-.54-1.523.105-3.176%200%200%201.005-.322%203.3%201.23.96-.267%201.98-.399%203-.405%201.02.006%202.04.138%203%20.405%202.28-1.552%203.285-1.23%203.285-1.23.645%201.653.24%202.873.12%203.176.765.84%201.23%201.91%201.23%203.22%200%204.61-2.805%205.625-5.475%205.92.42.36.81%201.096.81%202.22%200%201.606-.015%202.896-.015%203.286%200%20.315.21.69.825.57C20.565%2022.092%2024%2017.592%2024%2012.297c0-6.627-5.373-12-12-12%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.lg[data-glyph="bluesky"]{--lg-ratio:1.125;--lg-size:0.5882em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.002%200.664%2012.004%2010.675%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.5)%27%3E%3Cpath%20d%3D%27M12%2010.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944%201.561%201.266.902%201.565.139%201.908%200%203.08%200%203.768c0%20.69.378%205.65.624%206.479.815%202.736%203.713%203.66%206.383%203.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387%202.005-2.83%207.078%205.013%205.19%206.87-1.113%207.823-4.308.953%203.195%202.05%209.271%207.733%204.308%204.267-4.308%201.172-6.498-2.74-7.078a8.741%208.741%200%200%201-.415-.056c.14.017.279.036.415.056%202.67.297%205.568-.628%206.383-3.364.246-.828.624-5.79.624-6.478%200-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3%201.24C16.046%204.748%2013.087%208.687%2012%2010.8Z%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.lg[data-glyph="x"]{--lg-ratio:1.107;--lg-size:0.5588em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.007%200.572%2012.014%2010.858%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.5)%27%3E%3Cpath%20d%3D%27M18.901%201.153h3.68l-8.04%209.19L24%2022.846h-7.406l-5.8-7.584-6.638%207.584H.474l8.6-9.83L0%201.154h7.594l5.243%206.932ZM17.61%2020.644h2.039L6.486%203.24H4.298Z%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.lg[data-glyph="arena"]{--lg-ratio:1.689;--lg-size:0.4706em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%27-0.012%20-0.012%2020.315%2012.027%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27scale(0.1349)%27%3E%3Cpath%20d%3D%27M148.93%2062.356l-20.847-16.384c-1.276-1-1.276-2.642%200-3.645l20.848-16.38c1.28-1.002%201.815-2.695%201.19-3.76-.626-1.062-2.374-1.44-3.88-.84l-24.79%209.874c-1.507.606-2.927-.22-3.153-1.83L114.57%202.926C114.34%201.317%20113.13%200%20111.877%200c-1.247%200-2.456%201.317-2.68%202.925l-3.73%2026.467c-.228%201.61-1.646%202.434-3.155%201.83l-24.38-9.71c-1.512-.602-3.975-.602-5.483%200l-24.384%209.71c-1.508.604-2.928-.22-3.154-1.83L41.186%202.925C40.956%201.317%2039.748%200%2038.5%200c-1.252%200-2.463%201.317-2.688%202.925l-3.73%2026.467c-.226%201.61-1.645%202.434-3.153%201.83L4.14%2021.35c-1.507-.603-3.252-.223-3.878.838-.625%201.066-.092%202.76%201.184%203.76l20.85%2016.38c1.277%201.003%201.277%202.645%200%203.646L1.446%2062.356C.166%2063.358-.364%2065.152.26%2066.34c.627%201.19%202.372%201.668%203.877%201.064l24.567-9.866c1.51-.603%202.914.218%203.125%201.828l3.544%2026.696c.214%201.607%201.618%202.923%203.12%202.923%201.5%200%202.905-1.315%203.12-2.923l3.55-26.696c.21-1.61%201.62-2.43%203.122-1.828l24.164%209.698c1.506.606%203.97.606%205.477%200l24.16-9.698c1.504-.603%202.91.218%203.125%201.828l3.55%2026.696c.212%201.607%201.617%202.923%203.115%202.923%201.502%200%202.907-1.315%203.12-2.923l3.55-26.696c.216-1.61%201.62-2.43%203.124-1.828l24.57%209.866c1.5.604%203.25.125%203.876-1.063.627-1.186.094-2.98-1.185-3.982zM95.89%2046.18L77.53%2060.315c-1.285.99-3.393.99-4.674%200L54.49%2046.18c-1.284-.99-1.294-2.62-.02-3.625l18.4-14.493c1.274-1.005%203.363-1.005%204.638%200l18.4%2014.493c1.277%201.004%201.267%202.634-.02%203.626z%27%20fill-rule%3D%27nonzero%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.lg[data-glyph="external"]{--lg-ratio:0.999;--lg-size:0.5000em;--lg-mid:0.2941em;--lg-src:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%272.499%202.853%206.642%206.649%27%20fill%3D%27%23000%27%3E%3Cg%20transform%3D%27translate(6%206)%20rotate(-45)%20scale(0.0125%20-0.0125)%20translate(-400%20-355)%27%3E%3Cpath%20d%3D%27M333%2044%20602%20314H45V396H604L334%20666H445L755%20355L444%2044Z%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.lg[data-glyph="linkedin"]{--lg-ratio:1;--lg-size:0.5294em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='black'><g transform='scale(0.5)'><path fill-rule='evenodd' d='M3.5 0h17A3.5 3.5 0 0 1 24 3.5v17a3.5 3.5 0 0 1-3.5 3.5h-17A3.5 3.5 0 0 1 0 20.5v-17A3.5 3.5 0 0 1 3.5 0ZM5 9.4h3.5V20H5ZM6.75 3.6a2.05 2.05 0 1 0 0 4.1a2.05 2.05 0 1 0 0-4.1ZM10.7 9.4h3.35v1.5c.55-1 1.85-1.8 3.55-1.8c2.9 0 4.1 1.8 4.1 5V20h-3.5v-5.2c0-1.5-.5-2.5-1.85-2.5c-1.5 0-2.15 1.1-2.15 2.6V20h-3.5Z'/></g></svg>")}
.lg[data-glyph="email"]{--lg-ratio:1.333;--lg-size:0.4706em;--lg-mid:0.3547em;--lg-src:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 9' fill='black'><g transform='scale(0.5)'><path fill-rule='evenodd' d='M2.5 0h19A2.5 2.5 0 0 1 24 2.5v13a2.5 2.5 0 0 1-2.5 2.5h-19A2.5 2.5 0 0 1 0 15.5v-13A2.5 2.5 0 0 1 2.5 0ZM2.2 3.1 12 10.3l9.8-7.2v2.3L12 12.6 2.2 5.4Z'/></g></svg>")}
::view-transition{background:var(--bg)}
.links-channels{display:flex;flex-direction:column;gap:52px}
.lr{position:relative}
.lr-title{font-size:22px;letter-spacing:-.02em;line-height:1.2}
.lr-title .text-link{min-height:32px}
.ch-count{font:400 12px/1.4 var(--mono);color:var(--muted)}
.ch-count .lg{margin-left:.34em}
.lr .pc-thread{--pc-thread-max:none;overflow:visible;margin:0;padding:0}
.post-card{transition:border-color var(--hover) var(--ease)}
.link-card .lc-host{font:400 12px/1.4 var(--mono);color:var(--muted)}
.link-card .lc-title{font-size:16px;font-weight:600;line-height:1.3;letter-spacing:-.01em;overflow-wrap:anywhere}
.link-article .ab-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:clip;color:color-mix(in srgb,var(--ink) 82%,var(--bg))}
.lc-text{overflow-wrap:anywhere}
.lc-text p+p{margin-top:.7em}
.lc-text blockquote{margin:.5em 0;padding-left:10px;border-left:1px solid var(--line);color:var(--muted)}
.channel-page .ch-head{gap:6px}
.ch-crumb{font:400 12px/1.4 var(--mono);color:var(--muted)}
.ch-crumb .text-link{min-height:24px}
.ch-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:6px;font:400 12px/1.5 var(--mono);color:var(--muted)}
.ch-meta .text-link{min-height:0}
.channel-page .set-items{display:flex;flex-direction:column;gap:40px;margin-top:36px}
.channel-page .ch-entry{display:block;scroll-margin-top:28px;padding:0;border:0}
.ch-members{display:flex;flex-direction:column;gap:16px;max-width:560px}
.ch-group .ch-members{max-width:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;gap:18px}
.ch-member>.post-card{max-width:560px}
@media(min-width:761px){.channel-page:has(.ch-group) .ch-entry:not(.ch-group) .ch-members{max-width:calc((100% - 18px) / 2)}}
@media(max-width:760px){.ch-group .ch-members{grid-template-columns:1fr}}
.lr .post-card{--pc-bg:color-mix(in srgb,var(--panel) 55%,var(--bg));min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior-y:auto;padding-bottom:0;background:var(--pc-bg);scrollbar-width:none}
.lr .post-card>.pc-foot{position:sticky;bottom:0;z-index:1;margin:0 -16px;padding:6px 16px 12px;background:var(--pc-bg)}
.lr .post-card>.pc-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:36px;background:linear-gradient(to bottom,transparent,var(--pc-bg));opacity:0;pointer-events:none;transition:opacity 160ms var(--ease)}
.lr :is(.pc-post,.pc-thread,.pc-next,.pc-quote)>*{flex-shrink:0}
.lr .post-card{--clip-up:calc(var(--pc-foot,38px) + 8px)}
@media(hover:none) and (pointer:coarse){.lr .post-card{overflow-y:hidden}.lr .post-card>.pc-foot::before{height:64px;background:linear-gradient(to bottom,transparent,var(--pc-bg) 30%)}.lr .post-card>.pc-foot>:not(:first-child){order:2}.pc-thread{max-height:none;overflow-y:visible}}
.lr .post-card :is(.pc-media,.post-photo){overflow:clip}
.lr .post-card .stage-clip>.clip-controls{position:sticky;left:auto;bottom:var(--clip-up);width:max-content;margin:-28px 0 0 8px;transition:opacity 140ms var(--ease),bottom 160ms var(--ease)}
@media(prefers-reduced-motion:reduce){.lr .post-card .stage-clip>.clip-controls{transition:none}}
.link-article>.ab-media{margin:-2px 0 4px}
.link-article>.ab-media .ab-stage{border-radius:3px;overflow:hidden}
.ch-group:has(.pre-art) .ch-members{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),max-content))}
.ch-member:has(.pre-art)>.post-card{max-width:none;width:max-content}
.lc-host-link{color:inherit;text-decoration:underline 1px;text-underline-offset:.24em;text-decoration-color:color-mix(in srgb,var(--line) 75%,transparent);transition:color var(--hover) var(--ease),text-decoration-color var(--hover) var(--ease)}
@media(hover:hover){.lc-host-link:hover{color:var(--ink);text-decoration-color:var(--ink)}}
.lc-host-link .lg{text-decoration:none;margin-left:.3em}
.link-card .lc-title+.pc-foot{margin-top:-4px}
:is(.lc-text,.ab-description,.prose) blockquote:has(>:is(pre,code,.pre-art)){padding-left:0;border-left:0}
.cc{display:none}
.js .cc{position:relative;display:inline-flex;align-items:center}
.set-page:has(>.cc){position:relative}
.js .set-head-cc>.cc{min-width:40px;min-height:32px}
@media(pointer:coarse){.js .set-head-cc>.cc{min-width:44px;min-height:44px}}
.set-page>.cc{position:absolute;z-index:2;top:12px;right:0}
.collection-head .cc{margin-left:auto}
.ab-description{overflow-wrap:anywhere}
.ab-description blockquote,.lc-text blockquote{margin:.4em 0;padding-left:12px;border-left:1px solid var(--line);color:color-mix(in srgb,var(--ink) 80%,var(--bg))}
.ab-description ul,.lc-text ul{margin:.4em 0;padding-left:1.2em}
.ab-media{display:flex;flex-direction:column;gap:6px;min-width:0}
.ab-stage{position:relative;aspect-ratio:var(--pc-ratio);max-height:62svh;margin:0 auto;overflow:hidden;border-radius:3px;cursor:zoom-in;background:color-mix(in srgb,var(--line) 30%,transparent)}
.ab-stage :is(img,video){display:block;width:100%;height:100%;object-fit:contain}
.ab-added{font:400 12px/1.6 var(--mono);color:var(--muted)}
.ab-link-side[hidden]{display:none}
.ab-link-side{display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.45}
.ab-link-side .lc-out{font:400 12px/1.5 var(--mono);color:var(--muted)}
.ab-link-side .lc-title{font-size:16px;font-weight:600;line-height:1.3}
.ab-link-side .lc-out .lg{margin-left:.34em}
.ae-icon{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:32px;color:var(--muted);transition:color var(--hover,120ms) var(--ease,ease)}
.ae-icon:is(:hover,:focus-visible){color:var(--ink,var(--fg,currentColor))}
.ae-icon .lg{--lg-h:17px;--lg-bottom:0;margin:0;vertical-align:middle}
.ae-icon .lg::after{opacity:1}
.ae-icon .lg:is([data-glyph="arena"]){--lg-h:10px}
.ae-icon .lg:is([data-glyph="x"]){--lg-h:15px}
.ae-icon .lg:is([data-glyph="email"]){--lg-h:13px}
.ch-entry .ch-members:has(>.lr-expand){grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}
@media(max-width:760px){.ch-entry .ch-members:has(>.lr-expand){grid-template-columns:1fr}}
.ch-crumb{font-size:14px;line-height:1.4}
.ch-crumb .text-link{min-height:28px}
.theme-snap{--hover:0ms;--press:0ms;--lg-time:0ms}
.theme-snap :is(.lr-thumb,.lr-step,.pc-via-corner){transition-duration:0ms!important}
.ts{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.ts:focus-visible{outline:1.5px solid var(--ink);outline-offset:-3px}
.ts svg{display:block;width:16px;height:16px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}
.ts .face{display:block;width:16px;height:16px;transition:transform 220ms cubic-bezier(.3,1.4,.5,1)}
@media (hover:hover){.ts:hover .face{transform:rotate(-20deg)}}
.ts.pressed .face{transform:scale(.86);transition:transform 60ms var(--ease)}
@media (hover:hover){.ts.pressed:hover .face{transform:rotate(-20deg) scale(.86)}}
.ts-tip{position:absolute;z-index:5;top:calc(100% + 2px);right:8px;padding:3px 7px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);font:400 12px/1.4 var(--sans);letter-spacing:0;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-2px);transition:opacity 120ms var(--ease),transform 160ms var(--ease),visibility 0s linear 120ms}
.ts.tip-on .ts-tip{opacity:1;visibility:visible;transform:none;transition:opacity 90ms var(--ease),transform 160ms var(--ease),visibility 0s}
@media (pointer:coarse){.ts-tip{right:14px;top:calc(100% - 2px)}}
@media (forced-colors:active){.ts-tip{border-color:CanvasText}}
.ts .fill{fill:currentColor;stroke:none}
:root:not([data-theme]) .ts .fill{fill:none;stroke:currentColor}
@media (pointer:coarse){.ts{width:44px;height:44px}}
.ts-lamp .rays{transform-origin:8px 8px;transition:transform 150ms cubic-bezier(.3,1.4,.5,1),opacity 90ms linear}
.ts-lamp .disc{transform-origin:8px 8px;transform:scale(.58);transition:transform 160ms cubic-bezier(.3,1.45,.5,1)}
.ts-lamp .bite{transform:translate(10px,-10px);transition:transform 170ms cubic-bezier(.3,1.35,.5,1)}
.ts-lamp .bite-edge{fill:none;stroke:none}
:root:not([data-theme]) .ts-lamp .bite-edge{stroke:currentColor}
:root[data-resolved="dark"] .ts-lamp .rays{transform:rotate(45deg) scale(.2);opacity:0}
:root[data-resolved="dark"] .ts-lamp .disc{transform:none}
:root[data-resolved="dark"] .ts-lamp .bite{transform:translate(3.3px,-3.3px)}
.ts-lamp .disc,.ts-lamp .bite{vector-effect:non-scaling-stroke}
@media (hover:hover){:root[data-resolved="dark"] .ts-lamp:hover .face{transform:translateY(-2px)}:root[data-resolved="dark"] .ts-lamp.pressed:hover .face{transform:translateY(-2px) scale(.86)}}
@media (prefers-reduced-motion:reduce){.ts-tip{transform:none!important}.ts .face,.ts-lamp :is(.rays,.disc,.bite){transition:none!important}}
[data-pc-ar="1128x520"]{--pc-ratio:2.169}
[data-pc-ar="1200x1200"]{--pc-ratio:1}
[data-pc-ar="2344x672"]{--pc-ratio:3.488}
[data-pc-ar="640x280"]{--pc-ratio:2.286}
[data-pc-ar="927x1200"]{--pc-ratio:0.773}
:root[data-keys]{--kf-wash:var(--select);--kf-ink:var(--ink);--kf-rule:var(--ink)}
:root[data-keys] :is(.project.kf-at .project-title h3,.lr.kf-in .lr-title) .text-link{text-decoration-color:var(--kf-ink)}
.prose pre{overscroll-behavior-x:contain}
.masthead{align-items:baseline}
.controls{margin-top:0}
.identity{padding:0}
.name{display:inline-block;text-decoration:underline 1px;text-underline-offset:.14em;text-decoration-color:transparent;transition:text-decoration-color var(--hover) var(--ease),transform var(--hover) var(--ease),color var(--hover) var(--ease)}
@media(hover:hover){.identity:hover .name{text-decoration-color:var(--ink)}}
.identity:focus-visible .name{text-decoration-color:var(--ink)}
.identity:active .name{transform:translateY(1px);transition-duration:var(--press)}
@media(max-width:600px){.masthead{align-items:center}}
:is(.contact-button,.view-switch button,.cx-row,.cx-source,.ab-tile,.lr-step:not(:disabled),.lr-item:not(.lr-more) .post-card,.pc-card){transition-property:color,border-color,background-color,text-decoration-color,transform;transition-duration:var(--hover);transition-timing-function:var(--ease)}
:is(.contact-button,.view-switch button,.cx-row,.cx-source,.ab-tile,.lr-step:not(:disabled)):active,.pc-card:active{transform:translateY(1px);transition-duration:var(--press)}
.set-head.set-head-cc{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.set-head.set-head-cc>*{grid-column:1/-1}
.set-head.set-head-cc>.set-title{grid-column:1}
.set-head>.cc{grid-column:2;margin-left:10px;margin-right:-8px}
@media(pointer:coarse){.set-head>.cc{margin-right:-14px}}
.js .set-head>.cc{display:inline-flex}
@media(prefers-reduced-motion:reduce){.name{transition:none!important}}
.pl-field,.pl-icon{display:none}
.js .pl-field{position:relative;display:inline-block;width:164px;height:32px;margin:0 6px 0 -10px;padding:0 26px 0 10px;white-space:nowrap;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:400 15px/30px var(--sans);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--hover) var(--ease),border-color var(--hover) var(--ease),color var(--hover) var(--ease)}
.pl-field svg{display:inline-block;margin-right:8px;vertical-align:-2px}
.pl-field svg,.pl-icon svg{flex:none;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;overflow:visible}
.pl-label-site{display:none}
.pl-field-key{position:absolute;top:0;right:10px;font:400 12px/30px var(--mono);color:var(--muted);opacity:0;transition:opacity var(--hover) var(--ease)}
@media(hover:hover){.pl-field:hover{border-color:color-mix(in srgb,var(--line) 70%,transparent);background:var(--panel);color:var(--ink)}.pl-field:hover .pl-field-key{opacity:1}}
.pl-field:focus-visible{outline:1.5px solid var(--ink);outline-offset:-2px;color:var(--ink)}
.pl-field:focus-visible .pl-field-key{opacity:1}
.pl-field:active{background:color-mix(in srgb,var(--ink) 8%,var(--panel))}
.pl-icon{place-items:center;width:32px;height:32px;margin:0 -2px 0 -8px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.pl-icon svg{width:16px;height:16px;transition:transform 220ms cubic-bezier(.3,1.4,.5,1)}
@media(hover:hover){.pl-icon:hover svg{transform:rotate(-12deg) scale(1.06)}}
.pl-icon:active svg{transform:scale(.86);transition:transform 60ms var(--ease)}
.pl-icon:focus-visible{outline:1.5px solid var(--ink);outline-offset:-3px}
@media(pointer:coarse){.pl-icon{width:44px;height:44px}}
@media(max-width:600px){.masthead{grid-template-columns:minmax(0,1fr) auto auto}.controls .ts{grid-column:3}.js .pl-field{display:none}.js .pl-icon{display:inline-grid;grid-column:2;grid-row:1;align-self:center;margin:0 -6px 0 0}}
@media(prefers-reduced-motion:reduce){.pl-icon svg,.pl-field,.pl-field-key{transition:none!important}}
.text-link:has(>.link-text[data-split]){text-decoration-line:none}
.link-text[data-split]{text-decoration-color:inherit}
.project-title h3 .text-link,.lr-title .text-link{text-decoration-color:transparent}
@media(hover:hover){.project-title h3 .text-link:hover,.lr-title .text-link:hover{text-decoration-color:var(--ink)}}
.project-title h3 .text-link:focus-visible,.lr-title .text-link:focus-visible{text-decoration-color:var(--ink)}
.foot-names .lg:not(.lg-lead){display:none}
.foot-names .lg-lead{margin-left:0;margin-right:var(--lg-gap)}
@container foot (width < 456.15px){:root .foot-names{display:none}:root .foot-glyphs{display:flex}}