*,:after,:before{box-sizing:border-box;color:inherit;margin:0;padding:0}@property --background-color{syntax:"<color>";inherits:true;initial-value:#fafaf9}@property --text-color{syntax:"<color>";inherits:true;initial-value:#16171a}@property --border-color{syntax:"<color>";inherits:true;initial-value:#edf2f7}@property --link-color{syntax:"<color>";inherits:true;initial-value:#000}@property --code-background{syntax:"<color>";inherits:true;initial-value:#ecedee}@property --blockquote-border{syntax:"<color>";inherits:true;initial-value:#ececec}:root{--background-color:#fafaf9;--text-color:#16171a;--border-color:#edf2f7;--link-color:#000;--code-background:#ecedee;--blockquote-border:#ececec;--text-primary:var(--text-color);--text-muted:color-mix(in srgb, var(--text-color) 70%, transparent);--color-success:#22c55e;--color-error:#ef4444;--color-separator:#8080801a;--color-separator-subtle:#8080800f;--color-separator-form:#8080802e;--content-width:min(72ch, calc(100vw - 2rem));--content-padding:1rem;--feed-row-inset:clamp(.7rem, 1.6vw, .9rem);--feed-meta-col:7.5rem;--feed-row-radius:clamp(.625rem, 1.2vw, .85rem);--feed-row-y-pad:clamp(.56rem, 1vw, .78rem);--feed-row-border:#8080800f;--feed-row-hover:color-mix(in srgb, var(--text-color) 4.5%, transparent);--row-selected:color-mix(in srgb, var(--text-color) 12%, transparent);--feed-row-active:color-mix(in srgb, var(--text-color) 7.5%, transparent);--feed-row-shadow:0 1px 0 #ffffff59 inset;--feed-row-shadow-active:0 1px 0 #ffffff2e inset;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:2.5rem;--space-4xl:3rem;--opacity-muted:.5;--opacity-subtle:.6;--opacity-soft:.7;--opacity-readable:.85;--opacity-body:.9;--font-size-page-title:1.25rem;--font-size-bio:.92rem;--font-size-small:.78rem;--font-size-label:.72rem;--font-size-icon:1rem;--leading-tight:1.15;--leading-normal:1.55;--leading-relaxed:1.7;--motion-press:.12s;--motion-state:.16s;--motion-data:.24s;--motion-arrive:.32s;--motion-exit:.16s;--ease-press:ease-out;--ease-state:ease;--ease-data:ease-out;--ease-arrive:cubic-bezier(.22, 1, .36, 1);--ease-exit:ease-out;--ease-move:ease-in-out;color-scheme:light}[data-theme=dark]{--background-color:#1a1818;--text-color:#a2a2a2;--border-color:#333;--link-color:#a2a2a2;--code-background:#333;--blockquote-border:#444;--text-primary:var(--text-color);--text-muted:color-mix(in srgb, var(--text-color) 70%, transparent);color-scheme:dark}html[data-paper=cream]:not([data-theme=dark]){--background-color:#f0eee6;--text-color:#1f1e1d}@media (prefers-reduced-motion:no-preference){html.theme-transition{transition:--background-color var(--motion-data) var(--ease-data), --text-color var(--motion-data) var(--ease-data), --border-color var(--motion-data) var(--ease-data), --link-color var(--motion-data) var(--ease-data), --code-background var(--motion-data) var(--ease-data), --blockquote-border var(--motion-data) var(--ease-data)}}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;color:var(--text-color);background-color:var(--background-color);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.55}a{color:var(--link-color);text-decoration:none}p a,article a,.detail-description a,.detail-article a,blockquote a{text-underline-offset:.15em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}p a:hover,article a:hover,.detail-description a:hover,.detail-article a:hover,blockquote a:hover{text-decoration-color:currentColor}pre{margin:.5rem 0;padding:.5rem}.post p{margin:.5rem 0}.post h1,.post h2,.post h3,.post h4{margin:1rem 0}.post h2:first-child,.project h2:first-child,.photo h2:first-child{margin-top:0}.meta{margin:2rem 0}code,pre{background:var(--code-background)}code{padding:.1rem}pre code{border:none}pre{padding:1rem;overflow-x:auto}img{max-width:100%}table{border-collapse:collapse;background-color:#0000;width:100%}th,td{text-align:left;background-color:#0000;border:1px solid #80808040;padding:.5rem .75rem}th{font-weight:600}hr{background:var(--text-color);border:0;height:1px}section{padding:1rem}blockquote{border-left:5px solid var(--blockquote-border);padding-left:1rem;font-style:italic}h1,h2,h3,h4,h5{margin:.9rem 0;font-weight:600;line-height:1.15}h1{font-size:1.28rem}h2{font-size:1.05rem}h3{font-size:.94rem}h4{font-size:.88rem}section h1:first-child{margin-top:0}strong,b{font-weight:700}.photos ul{list-style:none}.photos li{margin-bottom:1.5rem}.photo picture,.project picture{margin-bottom:.5rem}.posts ul{list-style:none}.posts li{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.posts li a,.posts li div,.projects li a{white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.posts li time,.projects li time{white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:1rem}main{max-width:var(--content-width);padding:0 var(--content-padding);margin:4rem auto 2rem}@media screen and (width<=45rem){.photos ul{margin-top:.5rem}}section{flex-direction:column;display:flex}figcaption{font-size:smaller}header nav{max-width:var(--content-width);margin:0 auto}footer{text-align:left;width:100%;padding-top:1rem;padding-bottom:1rem;bottom:0;left:0}footer form{width:100%;max-width:var(--content-width);margin:0 auto}@media screen and (width>=768px){footer form{width:50%;margin:0 auto}}.mobile-only{display:none!important}.desktop-only{display:flex!important}.list-item-row{flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.project-row-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:28px;max-width:28px;height:28px;max-height:28px}.list-item-content{flex-direction:row;align-items:center;gap:.5rem;width:auto;display:flex}.list-item-title-row{justify-content:flex-start;align-items:center;width:auto;display:flex}.list-item-meta{white-space:nowrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;min-width:7rem;display:flex}.list-item-meta time{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:3.5rem}.desktop-only.list-item-meta,.view-count svg{flex-shrink:0}.image-strip img{-webkit-user-drag:none;pointer-events:none}.list-item-description{opacity:var(--opacity-subtle);font-size:.82rem;display:inline}.feed-stack{gap:0}.home-header-row{justify-content:space-between;align-items:center;gap:var(--space-lg);display:flex}.home-header-links{align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.home-header-links .u-subtle-link{justify-content:center;position:relative}@media (hover:hover) and (pointer:fine){.home-header-links .u-subtle-link:before{content:"";position:absolute;inset:-.5rem -.375rem}}@media (hover:none) and (pointer:coarse){.home-header-links{gap:0}.home-header-links .u-subtle-link{min-width:2rem;min-height:2rem}}.presence-dot{opacity:.3;background:currentColor;border-radius:50%;width:5px;height:5px;margin-right:3px;display:inline-block}.presence-dot[data-connected=true]{background:var(--color-success);opacity:.8}.presence-count{font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.presence-globe-disclosure{opacity:0;transition:grid-template-rows var(--motion-arrive) var(--ease-arrive), opacity var(--motion-data) var(--ease-data);grid-template-rows:0fr;display:grid}.presence-globe-disclosure.is-open{opacity:1;grid-template-rows:1fr}.presence-globe-disclosure-inner{min-height:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.presence-globe-disclosure{transition:none}}.feed-section{padding-top:1rem}.feed-heading{opacity:.5;margin-bottom:.9rem;font-size:.82rem}@media (width<=480px){.site-main--home{padding-inline:0}.home-header-row{flex-flow:row;align-items:center;gap:0}.home-header-links{gap:var(--space-sm);flex-wrap:nowrap;justify-content:flex-end;max-width:none}.home-header-row .page-title{flex-shrink:0}}@media (width<=480px) and (hover:none) and (pointer:coarse){.home-header-links .u-subtle-link{min-width:1rem;min-height:2rem}.home-header-links .u-subtle-link:before{content:"";position:absolute;inset:-.5rem -.25rem}.presence-count[data-digit-tier="3"]{letter-spacing:-.06em;font-size:.75rem}.presence-count[data-digit-tier="4"]{letter-spacing:-.07em;font-size:.625rem}.presence-count[data-digit-tier="5-plus"]{letter-spacing:-.08em;font-size:.5rem}}@media (width<=480px) and (hover:hover) and (pointer:fine){.home-header-links .u-subtle-link:before{inset-inline:-.25rem}}.presence-globe-caption{font-size:var(--font-size-small);opacity:var(--opacity-subtle);text-align:center;text-wrap:balance;max-width:44ch;animation:colophon-in var(--motion-arrive) var(--ease-arrive) backwards;margin-top:-.5rem}.presence-globe-caption a{text-underline-offset:.15em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent)}.presence-globe-caption a:hover{text-decoration-color:currentColor}@keyframes colophon-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.presence-globe-caption{animation:none}}.feed-list{flex-direction:column;display:flex}.feed-item{margin:0}.feed-row{align-items:center;gap:var(--space-md);padding:var(--feed-row-y-pad) var(--feed-row-inset);margin:0 calc(var(--feed-row-inset) * -1);border-radius:var(--feed-row-radius);width:auto;transition:background-color var(--motion-state) var(--ease-state), border-color var(--motion-state) var(--ease-state), box-shadow var(--motion-state) var(--ease-state), transform var(--motion-data) var(--ease-data);will-change:transform, background-color;background-color:#0000;border:1px solid #0000;display:grid;transform:translateY(0);box-shadow:0 0 #0000}.feed-row--bare{grid-template-columns:minmax(0, 1fr) var(--feed-meta-col)}.feed-row--marked{grid-template-columns:3rem minmax(0, 1fr) var(--feed-meta-col);column-gap:1rem}.feed-primary{flex-direction:column;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.feed-title-row{align-items:center;gap:var(--space-md);grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.feed-title{text-overflow:ellipsis;white-space:normal;letter-spacing:-.012em;min-width:0;font-size:1rem;font-weight:500;line-height:1.25;display:block;overflow:hidden}.feed-description{letter-spacing:0;opacity:var(--opacity-soft);font-size:.875rem;line-height:1.42857;display:block}.feed-description:before{content:""}.feed-meta{opacity:var(--opacity-subtle);font-variant-numeric:tabular-nums;gap:.65rem;min-width:7.5rem;font-size:.75rem;line-height:1.33333}.feed-meta .u-view-count{color:inherit;font-size:.75rem}.feed-metric{justify-content:flex-end;min-width:2.6rem}.feed-meta time{min-width:2.8rem}.feed-meta--mobile{gap:.55rem;min-width:auto}.feed-row .feed-thumb{background:color-mix(in srgb, var(--text-color) 5%, transparent);width:3rem;max-width:3rem;height:3rem;max-height:3rem;box-shadow:0 0 0 1px color-mix(in srgb, var(--text-color) 6%, transparent);border-radius:.5rem}.feed-media-shell{display:block;position:relative;overflow:hidden}.feed-media-layer{border-radius:inherit;object-fit:cover;opacity:0;max-width:none;max-height:none;transition:opacity var(--motion-data) var(--ease-data);inset:0;width:100%!important;height:100%!important;position:absolute!important}.feed-media-poster{z-index:1}.feed-media-video{z-index:2}.feed-media-layer--visible{opacity:1}.feed-motion-thumb{pointer-events:none;display:block}.project-thumb-default{background:color-mix(in srgb, var(--text-color) 5%, transparent);color:color-mix(in srgb, var(--text-color) 42%, transparent);letter-spacing:-.02em;user-select:none;justify-content:center;align-items:center;font-size:1.05rem;font-weight:560;display:inline-flex}.u-interactive-row{touch-action:manipulation;-webkit-tap-highlight-color:transparent;text-decoration:none!important}.u-interactive-row:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--text-color) 22%, transparent);background-color:#0000;border-color:#0000;outline:none}@media (hover:hover) and (pointer:fine){.feed-row:hover{background-color:var(--feed-row-hover);text-decoration:none!important}}.feed-row:active{background-color:var(--feed-row-active);text-decoration:none;transform:scale(.992)}.blog-notes-section{margin-top:2rem;padding-top:0}.blog-notes-section:before{content:"";border-image:conic-gradient(color-mix(in srgb, var(--text-color) 7%, transparent) 0 0) fill 0 / / 0 100vmax;height:1px;margin-bottom:3rem;display:block}.blog-notes-section .blog-notes-heading{margin-bottom:var(--space-xl)}.blog-notes-item{border-bottom:1px solid var(--color-separator-subtle);padding:1.1rem 0 1.3rem}.blog-notes-item:last-child{border-bottom:none}.blog-note-entry{flex-direction:column;gap:.85rem;display:flex}.blog-note-entry-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.blog-note-title{margin:0;font-size:1rem;font-weight:500;line-height:1.3}.blog-note-title-link{color:inherit;text-decoration:none}.blog-note-title-link:hover{opacity:var(--opacity-soft);text-decoration:none}.blog-note-date{white-space:nowrap;opacity:.6;font-variant-numeric:tabular-nums;font-size:.75rem}.blog-note-body{max-width:66ch;opacity:var(--opacity-readable);line-height:1.62}.blog-note-body p{margin:0 0 1rem}.blog-note-body p:last-child{margin-bottom:0}@media (width<=700px){.blog-note-entry-header{flex-direction:column;align-items:flex-start;gap:.25rem}.blog-note-body{max-width:100%}}.pcompact{margin-top:var(--space-lg);grid-template-columns:3rem minmax(0,1fr) auto;column-gap:1.1rem;display:grid}.pcompact-group{grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;padding:.5rem 0 .6rem;display:grid}.pcompact-group+.pcompact-group{border-top:1px solid var(--color-separator)}.pcompact-year{opacity:.4;font-variant-numeric:tabular-nums;grid-area:1/1;font-size:.78rem;font-weight:500}.pcompact-row{appearance:none;font:inherit;text-align:left;cursor:pointer;grid-column:2/-1;grid-template-columns:subgrid;color:inherit;transition:background-color var(--motion-state) var(--ease-state);background:0 0;border:0;border-radius:6px;align-items:baseline;margin:0 -.5rem;padding:.3rem .5rem;text-decoration:none;display:grid}@media (hover:hover) and (pointer:fine){.pcompact-row:hover{background-color:var(--feed-row-hover)}}.pcompact-row:active{background-color:var(--feed-row-active);transition-duration:0s}.pcompact-row,.pcompact-row:hover,.pcompact-row:hover *{text-decoration:none}.pcompact-main{text-wrap:pretty;grid-column:1;min-width:0;font-size:.95rem;line-height:1.45}.pcompact-row--bare .pcompact-main{grid-column:1/-1}.pcompact-title{white-space:nowrap;margin-right:.7rem;font-weight:500}.pcompact-desc{opacity:.5}.pcompact-metric{opacity:.4;white-space:nowrap;font-variant-numeric:tabular-nums;grid-column:2;justify-self:end;font-size:.78rem}@media (width>=601px){.pcompact--columns{grid-template-columns:3rem fit-content(10rem) minmax(0,1fr) auto}.pcompact--columns .pcompact-main{display:contents}.pcompact--columns .pcompact-title{white-space:normal;grid-column:1;margin-right:0;font-size:.95rem;line-height:1.45}.pcompact--columns .pcompact-desc{grid-column:2;min-width:0;font-size:.95rem;line-height:1.45}.pcompact--columns .pcompact-metric{grid-column:3}.pcompact--columns .pcompact-row--bare .pcompact-desc{grid-column:2/-1}}.pcompact{position:relative}.pstage-track{display:none}@media (hover:hover) and (pointer:fine) and (width>=1180px){.pstage-track{pointer-events:none;width:calc(50vw - 50% - 5rem);display:block;position:absolute;top:0;bottom:0;left:calc(100% + 2.5rem)}.pstage{aspect-ratio:4/3;opacity:0;width:100%;max-height:55vh;transition:opacity var(--motion-exit) var(--ease-exit);position:sticky;top:30vh}.pstage--on{opacity:1;transition-duration:0s}.pstage img{object-fit:contain;object-position:center top;width:100%;height:100%;display:block}.pcompact-row{transition:background-color var(--motion-state) var(--ease-state), opacity var(--motion-data) var(--ease-data)}.pcompact-year{transition:opacity var(--motion-data) var(--ease-data)}.pcompact--staged .pcompact-row:not(.pcompact-row--active){opacity:.45;transition-duration:var(--motion-state), var(--motion-state)}.pcompact--staged .pcompact-year{opacity:.45;transition-duration:var(--motion-state)}}.detail-shell.project-feed--full{--content-width:min(90rem, calc(100vw - 4rem));width:var(--content-width);max-width:none;margin-left:calc((100% - var(--content-width)) / 2);margin-right:calc((100% - var(--content-width)) / 2)}@media (hover:hover) and (pointer:fine) and (width>=1180px){.pcompact--full{grid-template-columns:5.75rem fit-content(14rem) minmax(16rem,24rem) auto minmax(24rem,1fr)}.pcompact--full .pcompact-group{grid-column:1/5}.pcompact--full .pcompact-year{z-index:1;pointer-events:none;grid-area:1/1;position:relative}.pcompact--full .pcompact-row{grid-column:1/5}.pcompact--full .pcompact-group>.pcompact-row:first-of-type{grid-row:1}.pcompact--full .pcompact-title{grid-column:2}.pcompact--full .pcompact-desc,.pcompact--full .pcompact-row--bare .pcompact-desc{grid-column:3}.pcompact--full .pcompact-metric{grid-area:1/4;place-self:baseline end;padding-left:1.25rem}.pcompact--full .pstage-track{grid-area:1/5/span 40;width:auto;margin-left:2rem;position:relative;top:auto;bottom:auto;left:auto}}.project-preview{min-width:0;transition:grid-template-rows var(--motion-arrive) var(--ease-arrive);grid-column:2/-1;grid-template-rows:1fr;align-self:start;display:grid}@starting-style{.project-preview{grid-template-rows:0fr}}.project-preview--closing{transition:grid-template-rows var(--motion-exit) var(--ease-exit);grid-template-rows:0fr}.project-preview-inner{min-height:0;transition:transform var(--motion-arrive) var(--ease-arrive);overflow:hidden;transform:translateY(0)}@starting-style{.project-preview .project-preview-inner{transform:translateY(-8px)}}.project-preview--closing .project-preview-inner{transition:transform var(--motion-exit) var(--ease-exit);transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){.project-preview-inner,.project-preview--closing .project-preview-inner{transition:none;transform:none}}.project-preview .pinline{padding:.75rem 0 1.75rem;font-size:.88rem;line-height:1.55}.pinline-media .detail-media-gallery,.pinline-media .detail-figures{margin:0 0 1.25rem}.pinline-main{min-width:0}.pinline-main .detail-article>:first-child{margin-top:0}.pinline-main pre{font-size:.82em}.project-preview .project-header{margin:0 0 1.25rem}.pcompact-row--open,.pcompact--staged .pcompact-row--open{opacity:1;background-color:var(--feed-row-hover)}.pcompact .pcompact-row .arrow{opacity:0;transform:none}@media (hover:hover) and (pointer:fine) and (width>=1180px){.pcompact-row--open,.pcompact--staged .pcompact-row--open{background-color:var(--row-selected)}.pcompact-row--open:hover{background-color:color-mix(in srgb, var(--text-color) 15%, transparent)}.pcompact .pcompact-row--open .arrow{opacity:.7}.pcompact .pcompact-row--open:hover .arrow{opacity:1;transform:translate(3px)}}.pcompact-row.pcompact-row--open:focus-visible{box-shadow:none}.pcompact-row:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--text-color) 22%, transparent);outline:none}.pcompact-row:focus:not(:focus-visible){box-shadow:none;outline:none}@media (hover:hover) and (pointer:fine) and (width>=1180px){.project-preview{top:0;bottom:0;left:var(--project-preview-left);width:var(--project-preview-width);overscroll-behavior:contain;scrollbar-width:none;z-index:3;transition:opacity var(--motion-exit) var(--ease-exit);align-self:stretch;padding:1.5rem .25rem 0 0;display:block;position:fixed;overflow-y:auto;mask-image:linear-gradient(#000 calc(100% - 56px),#0000)}.project-preview::-webkit-scrollbar{display:none}.project-preview--closing{opacity:0}.project-preview-inner{padding-bottom:56px;transition:none;overflow:visible;transform:none}.project-preview .pinline{padding:0;font-size:.92rem;line-height:1.55}}@media (width<=600px){.project-preview{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.project-preview,.project-preview--closing{transition:none}}@media (width<=600px){.pcompact,.pcompact--columns{grid-template-columns:minmax(0,1fr) auto;column-gap:.75rem}.pcompact-year{grid-area:auto/1/auto/-1;padding-bottom:.2rem}.pcompact-row{grid-column:1/-1;padding:.4rem .5rem}.pcompact-main,.pcompact--columns .pcompact-main{display:contents}.pcompact-title,.pcompact--columns .pcompact-title{white-space:normal;grid-area:1/1;margin-right:0;font-size:.95rem;line-height:1.45}.pcompact-row--bare .pcompact-title{grid-column:1/-1}.pcompact-desc,.pcompact--columns .pcompact-desc,.pcompact--columns .pcompact-row--bare .pcompact-desc{grid-area:2/1/auto/-1;font-size:.88rem;line-height:1.45}.pcompact-metric,.pcompact--columns .pcompact-metric{grid-area:1/2}}@media (hover:none){.feed-row:hover{background-color:#0000}.feed-row:active{box-shadow:none;background-color:#0000;border-color:#0000;transform:none}}.section-heading{text-transform:none;letter-spacing:-.01em;opacity:.5;margin:0 0 .9rem;font-size:.82rem;font-weight:600}.footer-links,.footer-last-updated{font-size:.78rem}.bio-text{font-size:.94rem;line-height:1.6}.detail-shell{max-width:var(--content-width);padding:0 var(--content-padding);box-sizing:border-box;margin:2rem auto;padding-bottom:6rem;font-size:1rem}.detail-shell--feed{margin-bottom:2rem}.detail-shell h1{letter-spacing:-.01em;margin:0 0 1.25rem;font-size:1.32rem;font-weight:600;line-height:1.2}.detail-shell .detail-description{opacity:var(--opacity-soft);margin-bottom:1.5rem;font-size:.98rem;line-height:1.7}.detail-shell article{line-height:1.7}.detail-shell article p{margin:0 0 1rem}.detail-shell article p:last-child{margin-bottom:0}.detail-topnav{justify-content:space-between;align-items:center;margin-bottom:2.5rem;display:flex}.detail-topnav-link{color:inherit;opacity:var(--opacity-muted);transition:opacity var(--motion-state) var(--ease-state);align-items:center;font-size:.84rem;text-decoration:none;display:flex}.detail-topnav-link:hover{opacity:.85}.detail-header{margin-bottom:1.5rem}.detail-header h1{margin:0 0 .5rem}.detail-header .detail-description{opacity:var(--opacity-soft);margin:0 0 .5rem;line-height:1.65}.detail-header--feed{margin-bottom:var(--space-xl)}.detail-header--feed h1,.blog-notes-heading{letter-spacing:-.01em;text-transform:none;opacity:.78;margin:0;font-size:1.1rem;font-weight:500}.detail-header--feed .detail-description{opacity:var(--opacity-subtle);max-width:65ch;margin:.35rem 0 0;font-size:.88rem;line-height:1.5}.detail-statement{max-width:58ch;margin-top:1.1rem}.detail-statement .detail-statement-quote{opacity:var(--opacity-body);text-wrap:pretty;color:inherit;text-underline-offset:.16em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, currentColor 18%, transparent);transition:text-decoration-color var(--motion-state) var(--ease-state);margin:1.1rem 0 0;font-size:.9rem;line-height:1.62;display:block}.detail-statement .detail-statement-quote:hover{text-decoration-color:color-mix(in srgb, currentColor 45%, transparent)}.detail-article{margin-bottom:2rem;font-size:1rem;line-height:1.8}.detail-article p{margin:0 0 1.2rem;font-size:1rem;line-height:1.8}.detail-article h2,.detail-article h3{letter-spacing:-.015em;color:inherit;margin:2.4rem 0 .8rem;line-height:1.25}.detail-article h2{font-size:1.04rem;font-weight:600}.detail-article h3{font-size:.96rem;font-weight:600}.detail-article h2:first-child,.detail-article h3:first-child{margin-top:0}.detail-article p:last-child{margin-bottom:0}.detail-media-gallery{flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}.detail-media-img{object-fit:contain;border-radius:8px;width:100%}.detail-banner{background:color-mix(in srgb, var(--text-color) 5%, transparent);border-radius:8px;overflow:hidden}.detail-banner-img[data-state=pending]{opacity:0}.detail-banner-img[data-state=loaded]{opacity:1;transition:opacity var(--motion-data) var(--ease-data)}@media (prefers-reduced-motion:reduce){.detail-banner-img[data-state=loaded]{transition:none}}.detail-offer{opacity:.85;margin:0 0 2rem;font-style:italic;line-height:1.65}.blog-note-title .blog-note-title-link,.blog-note-title .blog-note-title-link:hover{border-bottom:none;text-decoration:none}.blog-note-body a,.blog-note-body p a{color:inherit;transition:opacity var(--motion-state) var(--ease-state), color var(--motion-state) var(--ease-state);border-bottom:none;text-decoration:none}.blog-note-body a:hover,.blog-note-body p a:hover{opacity:.82;text-decoration:none}[id=agi-diffusion],dl>[id]{scroll-margin-top:2rem}.image-strip{width:100%;display:flex}.image-strip-item{background:color-mix(in srgb, var(--text-color) 5%, transparent);flex:1;height:300px;position:relative;overflow:hidden}.image-strip-layer{object-fit:cover;inset:0;width:100%!important;height:100%!important;position:absolute!important}.image-strip-video{z-index:1;opacity:0;transition:opacity var(--motion-data) var(--ease-data)}.image-strip-video--ready{opacity:1}@media (prefers-reduced-motion:reduce){.feed-media-layer,.image-strip-video{transition:none}}.mdx-content h2{margin-top:var(--space-3xl);margin-bottom:var(--space-xl);letter-spacing:-.02em;color:var(--text-primary);font-size:1.2rem;font-weight:600}.mdx-content h3{margin-top:var(--space-2xl);margin-bottom:var(--space-lg);letter-spacing:-.01em;color:var(--text-primary);font-size:1.04rem;font-weight:600}.detail-shell .mdx-content{letter-spacing:-.005em}.detail-shell .mdx-content p{font-size:1rem;line-height:1.8}.detail-shell .mdx-content,.detail-shell .mdx-content p,.detail-shell .mdx-content li,.detail-shell .mdx-content a,.blog-note-body{overflow-wrap:anywhere;word-break:break-word}.detail-shell .mdx-content ul,.detail-shell .mdx-content ol{padding-left:1.1rem}.detail-shell .mdx-content li{line-height:1.8}.mdx-content p{color:var(--text-primary);opacity:var(--opacity-body);margin-bottom:1.75rem}.mdx-content ul,.mdx-content ol{margin:var(--space-2xl) 0;padding-left:var(--space-xl)}.mdx-content li{margin-bottom:var(--space-md);line-height:var(--leading-relaxed);color:var(--text-primary);opacity:var(--opacity-body)}.mdx-content img{width:100%;height:auto;margin:var(--space-4xl) 0}.mdx-content blockquote{margin:var(--space-2xl) 0;padding-left:var(--space-xl);border-left:3px solid var(--color-separator-form);opacity:var(--opacity-readable);font-style:italic}.detail-article.mdx-content>:first-child{margin-top:0}.mdx-content code{background:#8080801a;border-radius:4px;padding:.2em .4em;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:.9em}.mdx-content pre{margin:var(--space-2xl) 0;padding:var(--space-xl);background:var(--code-background);border-radius:8px;overflow-x:auto}.mdx-content a{color:inherit;text-underline-offset:2px;transition:text-decoration-color var(--motion-state) var(--ease-state);text-decoration:underline #80808066}.mdx-content a:hover{text-decoration-color:#808080cc}.mdx-content strong{font-weight:600}.mdx-content hr{margin:var(--space-4xl) 0;border:none;border-top:1px solid var(--color-separator);background:0 0;height:0}.mdx-content table,.mdx-content thead,.mdx-content tbody,.mdx-content tr,.mdx-content th,.mdx-content td{background-color:var(--background-color)!important}.mdx-content table{border-collapse:collapse;width:100%;margin:var(--space-2xl) 0}.mdx-content th,.mdx-content td{padding:var(--space-sm) var(--space-md);text-align:left;border:1px solid #80808040}.mdx-content th{font-weight:600}.archive-toggle{cursor:pointer;margin-bottom:var(--space-xl);align-items:center;gap:var(--space-sm);transition:opacity var(--motion-state) var(--ease-state);opacity:var(--opacity-subtle);display:flex}.archive-toggle:hover{opacity:var(--opacity-soft)}.archive-toggle:active{transform:none}.u-container{max-width:var(--content-width);margin-left:auto;margin-right:auto}.u-list-reset{margin:0;padding:0;list-style:none}.u-interactive-row{color:inherit;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;text-decoration:none}.u-interactive-row:hover{text-decoration:none}.u-subtle-link{opacity:var(--opacity-subtle);transition:opacity var(--motion-state) var(--ease-state);align-items:center;display:inline-flex}.u-subtle-link:hover{opacity:1}.u-view-count{align-items:center;gap:var(--space-xs);display:flex}.u-icon{width:var(--font-size-icon);height:var(--font-size-icon);fill:none}html:not([data-theme=dark]) .theme-icon-sun,html[data-theme=dark] .theme-icon-moon{display:none}.u-btn-reset{cursor:pointer;color:inherit;background:0 0;border:none;padding:0}@keyframes haptic-bounce-up{0%{transform:translateY(0)}35%{transform:translateY(-6px)}65%{transform:translateY(1px)}to{transform:translateY(0)}}.haptic-bounce-up{animation:.28s ease-out haptic-bounce-up}@keyframes haptic-success-pop{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}.haptic-success-pop{animation:.25s ease-out haptic-success-pop}@keyframes haptic-error-shake{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.haptic-error-shake{animation:.3s ease-out haptic-error-shake}@media (prefers-reduced-motion:reduce){.haptic-bounce-up,.haptic-success-pop,.haptic-error-shake{animation:none}.u-interactive-row:active,.u-subtle-link:active,.u-btn-reset:active,.archive-toggle:active{transform:none}}svg text{stroke:none;stroke-width:0;font-weight:400}h1.page-title{letter-spacing:0;font-size:1rem;font-weight:400;line-height:inherit;margin:0}@media screen and (width<=767px){:root{--feed-row-inset:clamp(.72rem, 3vw, .88rem);--feed-row-radius:.8rem;--feed-row-y-pad:.68rem}.mobile-only{display:flex!important}.desktop-only{display:none!important}.list-item-row{flex-flow:wrap;justify-content:flex-start;align-items:center;gap:.25rem .5rem}.project-row-thumb{width:24px;max-width:24px;height:24px;max-height:24px}.list-item-content{flex-direction:column;align-items:flex-start;width:100%}.list-item-title-row{justify-content:space-between;width:100%}.list-item-description{display:block}.list-item-description:before{content:""}.list-item-meta{justify-content:flex-end;min-width:6rem}.view-count{min-width:4rem}.list-item-meta time{min-width:3.5rem}.feed-section{padding-top:.9rem}.feed-heading{margin-bottom:.8rem;font-size:.8rem}.feed-row{padding:var(--feed-row-y-pad) var(--feed-row-inset);margin:0 calc(var(--feed-row-inset) * -1);grid-template-columns:minmax(0,1fr);gap:.25rem;display:grid}.feed-row--bare{grid-template-columns:minmax(0,1fr)}.feed-row--marked{grid-template-columns:3rem minmax(0,1fr);gap:.25rem 1rem}.feed-primary{width:100%}.feed-title-row{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:.18rem}.feed-meta--mobile{flex-wrap:wrap;justify-content:flex-start;gap:.45rem;min-width:0;font-size:.75rem}.feed-meta--mobile .u-view-count{font-size:.75rem}.feed-meta--mobile time,.feed-meta--mobile .view-count{min-width:0}.feed-metric{min-width:auto}.detail-shell.project-feed--full{--content-width:calc(100vw - 2rem)}.detail-topnav{flex-wrap:wrap;gap:.75rem;margin-bottom:1.75rem}.footer-links-container{flex-direction:column!important;align-items:flex-start!important;gap:.75rem!important}.footer-links-row{flex-direction:column!important;gap:.75rem!important}.image-strip{height:400px;display:block}.image-strip-item{display:none}.image-strip-item:first-child{height:400px;display:block}}@media screen and (width<=600px){#top-bar{display:none}}.globe-label{color:color-mix(in srgb, var(--text-color) 82%, transparent);background-color:color-mix(in srgb, var(--background-color) 86%, transparent);box-shadow:0 1px 3px color-mix(in srgb, var(--text-color) 12%, transparent), 0 4px 12px color-mix(in srgb, var(--text-color) 6%, transparent), inset 0 1px 0 color-mix(in srgb, var(--background-color) 92%, transparent);transition:opacity var(--motion-data) var(--ease-data), filter var(--motion-data) var(--ease-data)}@media (prefers-reduced-motion:reduce){.globe-label{transition:none}}@supports not (anchor-name:--test){.globe-label{display:none}}.media-frame-figure{flex-direction:column;gap:.6rem;margin:0;display:flex}.detail-article>.media-frame-figure,.detail-shell>.media-frame-figure{margin:0 0 1.5rem}.media-frame{isolation:isolate;border-radius:8px;width:100%;line-height:0;position:relative;overflow:hidden}.media-frame-media{object-fit:contain;border-radius:8px;width:100%;height:auto;display:block}.media-frame-overlay{z-index:2;color:#fff;text-shadow:0 1px 2px #0009;pointer-events:none;max-width:min(36ch,80%);line-height:var(--leading-snug,1.35);padding:1rem 1.25rem;font-size:.95rem;position:absolute}.media-frame-overlay a,.media-frame-overlay button{pointer-events:auto}.media-frame-overlay--top-left{top:0;left:0}.media-frame-overlay--top-right{text-align:right;top:0;right:0}.media-frame-overlay--bottom-left{bottom:0;left:0}.media-frame-overlay--bottom-right{text-align:right;bottom:0;right:0}.media-frame-overlay--center{text-align:center;max-width:min(40ch,86%);top:50%;left:50%;transform:translate(-50%,-50%)}.media-frame-overlay--scrim:before{content:"";z-index:-1;background:radial-gradient(ellipse at var(--scrim-x,15%) var(--scrim-y,85%), #000000b3 0%, #0000 70%);border-radius:inherit;pointer-events:none;position:absolute;inset:-1.25rem}.media-frame-overlay--top-left.media-frame-overlay--scrim{--scrim-x:15%;--scrim-y:15%}.media-frame-overlay--top-right.media-frame-overlay--scrim{--scrim-x:85%;--scrim-y:15%}.media-frame-overlay--bottom-left.media-frame-overlay--scrim{--scrim-x:15%;--scrim-y:85%}.media-frame-overlay--bottom-right.media-frame-overlay--scrim{--scrim-x:85%;--scrim-y:85%}.media-frame-overlay--center.media-frame-overlay--scrim{--scrim-x:50%;--scrim-y:50%}.media-frame-caption{opacity:var(--opacity-muted,.65);font-size:.88rem;line-height:var(--leading-snug,1.4)}.mdx-content{counter-reset:margin-note}.margin-note-ref{counter-increment:margin-note;cursor:pointer}.margin-note-ref:after{content:counter(margin-note);vertical-align:super;opacity:.55;font-variant-numeric:tabular-nums;margin-left:.1em;font-size:.7em;line-height:0}.margin-note-toggle{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.margin-note{opacity:.6;font-variant-numeric:tabular-nums;font-size:.8rem;line-height:1.55;display:none}.margin-note:before{content:counter(margin-note) " ";font-size:.85em}.margin-note-toggle:checked+.margin-note-ref+.margin-note{margin:.6rem 0 .8rem 1rem;display:block}.margin-note-toggle:focus-visible+.margin-note-ref:after{outline-offset:2px;outline:1px solid}@media (width>=1180px){.margin-note-ref{cursor:default}.margin-note,.margin-note-toggle:checked+.margin-note-ref+.margin-note{float:right;clear:right;width:13rem;margin:.25rem -15.5rem .75rem 0;display:block}}.detail-foot{border-bottom:none;margin:1rem 0 0}.blog-comment-form{width:100%}.blog-comment-list{flex-direction:column;gap:.5rem;display:flex}.blog-comment-list p{margin:0}.detail-figures .media-frame,.detail-figures .media-frame-media,.detail-figures .detail-media-img{border-radius:0}.media-carousel-rail{align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.media-carousel-thumb{cursor:pointer;opacity:.45;width:64px;height:40px;transition:opacity var(--motion-state) var(--ease-state);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:0;overflow:hidden}.media-carousel-thumb:hover{opacity:.75}.media-carousel-thumb--active{opacity:1;outline:1px solid color-mix(in srgb, var(--text-color) 35%, transparent);outline-offset:-1px}.media-carousel-thumb img{object-fit:cover;width:100%;height:100%;display:block}.media-carousel-thumb-fallback{background:color-mix(in srgb, var(--text-color) 6%, transparent);width:100%;height:100%;color:var(--text-color);opacity:.6;justify-content:center;align-items:center;display:flex}.media-carousel-count{opacity:.4;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto;font-size:.76rem}.media-carousel-stage{aspect-ratio:16/9;width:100%}.media-carousel-stage .media-frame-figure,.media-carousel-stage .media-frame{height:100%}.media-carousel-stage .media-frame-media,.media-carousel-stage .media-frame img,.media-carousel-stage .media-frame video{object-fit:contain;width:100%;height:100%}.media-carousel-stage img.media-frame-media{max-width:var(--fig-w,100%);margin-inline:auto}.media-carousel-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:auto;gap:.5rem;min-width:0;display:flex;overflow-x:auto}.media-carousel-strip::-webkit-scrollbar{display:none}.media-carousel-stage{background:color-mix(in srgb, var(--text-color) 4%, transparent);position:relative;overflow:hidden}.media-carousel-backdrop{object-fit:cover;filter:blur(28px)saturate(1.15);width:100%;height:100%;position:absolute;inset:0;transform:scale(1.12)}.media-carousel-stage .media-frame-figure{position:relative}.media-carousel-stage{touch-action:pan-y;cursor:grab}.media-carousel-stage:active{cursor:grabbing}.media-carousel-track{will-change:transform;height:100%;transition:transform var(--motion-arrive) var(--ease-arrive);display:flex}@media (prefers-reduced-motion:reduce){.media-carousel-track{transition:none}}.media-carousel-slide{flex:0 0 100%;height:100%;position:relative;overflow:hidden}.media-carousel-slide-poster{object-fit:contain;width:100%;height:100%;display:block;position:relative}.feed-row:active{transition-duration:0s}.essay{--face:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--title-size:2.25rem;--title-weight:600;--title-tracking:-.015em;--meta-size:1.05rem;--fact-style:italic;--prose-size:1.1875rem;--prose-leading:1.6;--heading-weight:400;--h3-style:italic;--comment-meta-size:1rem;--comment-size:1.0625rem}.essay.product,.project-preview{--face:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;--title-size:1.375rem;--title-weight:600;--title-tracking:-.022em;--meta-size:.84rem;--fact-style:normal;--prose-size:1.0625rem;--prose-leading:1.7;--heading-weight:600;--h3-style:normal;--comment-meta-size:.84rem;--comment-size:.95rem;--title-leading:1.3}@media (width<=600px){.essay{--title-size:1.9rem;--prose-size:1.125rem}.essay.product,.project-preview{--title-size:1.25rem;--prose-size:1rem}}.essay .detail-header{margin-bottom:2.5rem}.essay .detail-header h1{font-family:var(--face);font-size:var(--title-size);font-weight:var(--title-weight);line-height:var(--title-leading,1.15);letter-spacing:var(--title-tracking);margin-bottom:0}.project-header .project-title{font-family:var(--face);font-size:var(--title-size);font-weight:var(--title-weight);line-height:var(--title-leading,1.15);letter-spacing:var(--title-tracking);margin:0;display:inline}.project-header .detail-description{font-family:var(--face);font-size:var(--title-size);font-weight:400;line-height:var(--title-leading,1.15);letter-spacing:var(--title-tracking);opacity:.55;margin:0 0 0 .3em;display:inline}.detail-byline{font-family:var(--face);font-size:var(--meta-size);flex-wrap:wrap;align-items:baseline;gap:.2rem .9em;margin:.6rem 0 0;display:flex}.detail-byline :is(time,.fact){font-style:var(--fact-style);font-variant-numeric:tabular-nums}.detail-byline :is(time,.fact-unit){opacity:.55}.detail-byline .fact-count{font-weight:500}.detail-byline a{color:inherit;opacity:.8;text-underline-offset:2px;text-decoration:underline #80808066}.detail-byline a:hover{opacity:1}.detail-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin:1.1rem 0 0;display:flex}.detail-button{border:1px solid color-mix(in srgb, var(--text-color) 16%, transparent);height:1.8rem;color:inherit;font-family:var(--face);white-space:nowrap;transition:background-color var(--motion-state) var(--ease-state), border-color var(--motion-state) var(--ease-state), transform var(--motion-press) var(--ease-press);border-radius:7px;align-items:center;gap:.35rem;padding:0 .7rem;font-size:.8rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.detail-button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.detail-button:hover{background:color-mix(in srgb, var(--text-color) 5%, transparent);border-color:color-mix(in srgb, var(--text-color) 26%, transparent)}}.detail-button--primary{border-color:var(--text-color);background:var(--text-color);color:var(--background-color)}@media (hover:hover) and (pointer:fine){.detail-button--primary:hover{background:color-mix(in srgb, var(--text-color) 85%, transparent);border-color:#0000}}@media (width<=600px){.detail-actions{scrollbar-width:none;flex-wrap:nowrap;margin-right:calc(50% - 50vw);padding-right:1.5rem;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.detail-actions::-webkit-scrollbar{display:none}.detail-button{flex-shrink:0}}.detail-button svg:not(.arrow){opacity:.7;width:.9em;height:.9em}.arrow{vertical-align:-.08em;opacity:.5;width:.8em;height:.8em;transition:transform var(--motion-data) var(--ease-data), opacity var(--motion-data) var(--ease-data);flex-shrink:0;margin-left:.3em;display:inline-block}.arrow[data-dir=back]{margin:0 .3em 0 0}@media (hover:hover) and (pointer:fine){a:hover .arrow{opacity:.85}a:hover .arrow[data-dir=forward]{transform:translate(3px)}a:hover .arrow[data-dir=back]{transform:translate(-3px)}a:hover .arrow[data-dir=away]{transform:translate(2px,-2px)}}@media (prefers-reduced-motion:reduce){a:hover .arrow[data-dir]{transform:none}}.detail-shell.essay :is(a,button):focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--text-color) 22%, transparent);border-radius:3px;outline:none}.essay>.detail-media-gallery{margin-top:0;margin-bottom:2.75rem}.essay :is(.mdx-content,.detail-article){font-family:var(--face);letter-spacing:0}.essay :is(.mdx-content,.detail-article) :is(p,li){font-size:var(--prose-size);line-height:var(--prose-leading)}.essay :is(.mdx-content,.detail-article) p{margin-bottom:1.15em}.essay :is(.mdx-content,.detail-article) :is(h2,h3){font-family:var(--face);font-weight:var(--heading-weight);letter-spacing:0;margin:2.2em 0 .6em}.essay :is(.mdx-content,.detail-article) h2{font-size:1.55rem}.essay :is(.mdx-content,.detail-article) h3{font-size:1.3rem;font-style:var(--h3-style)}.product .detail-article h2{font-size:1.25rem}.product .detail-article h3{font-size:1.1rem}.essay :is(.mdx-content,.detail-article) blockquote{font-size:var(--prose-size);line-height:var(--prose-leading);border-left:none;padding-left:1.5em}.essay :is(.mdx-content,.detail-article) code{font-size:.8em}.product .detail-media-gallery,.product .detail-figures,.product .detail-article>.media-frame-figure{--wide:min(64rem, calc(100vw - 2rem));width:var(--wide);max-width:none;margin-inline:calc((100% - var(--wide)) / 2)}.product .detail-article .detail-media-img{--wide:min(64rem, calc(100vw - 2rem));--fig:min(var(--wide), var(--fig-w,100vw), calc(min(70vh, 36rem) * var(--fig-ratio,100)));width:var(--fig);max-width:none;height:auto;margin:1.5rem calc((100% - var(--fig)) / 2);display:block}.product .detail-article>:is(.media-frame-figure,.detail-media-gallery){margin-block:1.5rem}.product .detail-article .detail-figure-pair{--wide:min(64rem, calc(100vw - 2rem));width:var(--wide);margin:1.5rem calc((100% - var(--wide)) / 2);justify-content:center;align-items:flex-start;gap:1rem;display:flex}.product .detail-article .detail-figure-pair .detail-media-img{--wide:calc((min(64rem, 100vw - 2rem) - 1rem) / 2);margin:0}.product :is(.detail-media-img,.media-frame-media){object-fit:contain;max-height:min(70vh,36rem)}.product>.live-frame{--wide:min(64rem, calc(100vw - 2rem));width:var(--wide);max-width:none;margin:0 calc((100% - var(--wide)) / 2) 2.75rem}.live-frame-stage{aspect-ratio:16/10;background:color-mix(in srgb, var(--text-color) 5%, transparent);box-shadow:0 0 0 1px var(--color-separator);border-radius:8px;position:relative;overflow:hidden}.live-frame-still,.live-frame-app{border:0;width:100%;height:100%;position:absolute;inset:0}.live-frame-still{object-fit:cover}.live-frame-app{background:var(--background-color);opacity:0;pointer-events:none;transition:opacity var(--motion-data) var(--ease-data)}.live-frame[data-state=live] .live-frame-app{opacity:1;pointer-events:auto}.live-frame-load{width:max-content;font-family:var(--face);font-size:var(--meta-size);text-underline-offset:2px;margin:0 auto;text-decoration:underline;position:absolute;inset:auto 0 1rem}@media (width<=600px){.live-frame-stage{aspect-ratio:auto;height:72svh}}.product>:is(.detail-media-gallery,.detail-figures):first-child{margin-top:0;margin-bottom:2.75rem}.detail-subscribe{margin:3rem 0 0}.detail-subscribe~.detail-endnav{margin-top:1.5rem}.detail-subscribe-frame{min-height:160px}.detail-subscribe iframe{color-scheme:light;filter:grayscale();mix-blend-mode:multiply;background:0 0;border:0;width:min(384px,100% + 24px);height:160px;margin-inline:-12px;display:block}[data-theme=dark] .detail-subscribe iframe{filter:grayscale()invert();mix-blend-mode:screen}.detail-endnav{font-family:var(--face);font-size:var(--meta-size);justify-content:space-between;align-items:baseline;gap:1.5rem;margin:3.5rem 0 0;display:flex}.detail-endnav a{color:inherit;opacity:.6;text-decoration:none}.detail-endnav a:hover{opacity:.9}.detail-thread{margin-top:2rem}.detail-thread:before{content:"";border-image:conic-gradient(color-mix(in srgb, var(--text-color) 7%, transparent) 0 0) fill 0 / / 0 100vmax;height:1px;margin-bottom:3rem;display:block}.comments{padding:0}.detail-thread .blog-comment-list{flex-direction:column;gap:1.5rem;margin-bottom:2rem;display:flex}.comment-meta,.comment-body{font-family:var(--face);margin:0}.comment-meta{font-size:var(--comment-meta-size);font-variant-numeric:tabular-nums}.comment-name{opacity:.9;font-weight:600}.comment-place,.comment-when{font-style:var(--fact-style);opacity:.5;white-space:nowrap}.comment-when{margin-left:1.1rem}.comment-body{font-size:var(--comment-size);opacity:.85;overflow-wrap:anywhere;margin-top:.15rem;line-height:1.55}.composer-line{border-bottom:1px solid var(--color-separator);transition:border-color var(--motion-state) var(--ease-state);align-items:center;gap:.75rem;display:flex}.composer-line:focus-within{border-bottom-color:color-mix(in srgb, currentColor 40%, transparent)}.composer-input{width:100%;min-width:0;color:inherit;font-family:var(--face);font-size:max(1rem, var(--comment-size));background:0 0;border:0;border-radius:0;outline:none;padding:.55rem 0}.composer-name{border-bottom:1px solid var(--color-separator);max-width:16rem;transition:border-color var(--motion-state) var(--ease-state)}.composer-name:focus{border-bottom-color:color-mix(in srgb, currentColor 40%, transparent)}.composer-input::placeholder{color:inherit;opacity:.45}.composer-row{margin-top:.75rem}.composer:not(:focus-within) .composer-line:has(.composer-message:placeholder-shown)+.composer-row{display:none}.composer-post{font-family:var(--face);font-size:max(1rem, var(--comment-size));opacity:.3;cursor:default;transition:opacity var(--motion-state) var(--ease-state), transform var(--motion-press) var(--ease-press);flex-shrink:0;padding:.25rem 0 .25rem .5rem}.composer-post[data-ready=true]{opacity:.9;cursor:pointer}.composer-post[data-ready=true]:active{transform:scale(.96)}.blog-comment-error{color:var(--color-error);font-family:var(--face);font-size:var(--comment-meta-size);margin:.6rem 0 0}.project-preview:not(.project-preview--closing) .pinline-media:has(>*),.detail-shell.product>:is(.live-frame,.detail-media-gallery,.detail-figures):first-child{view-transition-name:project-media}.project-preview:not(.project-preview--closing) .project-header,.detail-shell.product>.project-header{view-transition-name:project-header}::view-transition-group(project-media),::view-transition-group(project-header){animation-duration:var(--motion-arrive);animation-timing-function:var(--ease-arrive)}::view-transition-old(project-media),::view-transition-new(project-media){object-fit:cover;height:100%}.home-projects-title,.home-writing-title{display:inline-block}.home-projects-title,.project-feed--full .detail-header h1{view-transition-name:projects-title;view-transition-class:section-title}.home-writing-title,.blog-index .detail-header h1{view-transition-name:writing-title;view-transition-class:section-title}::view-transition-group(*.section-title){animation-duration:var(--motion-arrive);animation-timing-function:var(--ease-arrive)}::view-transition-old(*.section-title),::view-transition-new(*.section-title){width:auto;height:100%;animation-duration:var(--motion-exit)}::view-transition-old(*.section-title){animation-name:page-exit}@keyframes page-exit{to{opacity:0;filter:blur(2px)}}@keyframes page-arrive{0%{opacity:0;transform:translateY(4px)}}::view-transition-old(root){animation:page-exit var(--motion-exit) var(--ease-exit) both}::view-transition-new(root){animation:page-arrive var(--motion-arrive) var(--ease-arrive) both}.feed-row--all .feed-all-label{opacity:.75;transition:opacity var(--motion-state) var(--ease-state);font-size:.95rem}.feed-row.feed-row--all:hover,.feed-row.feed-row--all:active{box-shadow:none;background-color:#0000;border-color:#0000;transform:none}@media (hover:hover) and (pointer:fine){.feed-row--all:hover .feed-all-label{opacity:1}}.project-preview-inner{container-type:inline-size}.project-preview-controls{--control-glyph:clamp(1.125rem, 3.4cqi, 1.375rem);--control-size:2.5rem;height:var(--control-size);margin:0 calc((var(--control-size) - var(--control-glyph)) / -2) .5rem;justify-content:space-between;align-items:center;display:flex}.project-preview-controls>*{width:var(--control-size);height:var(--control-size);color:inherit;justify-content:center}.project-preview-controls .u-icon{width:var(--control-glyph);height:var(--control-glyph)}@media (hover:hover) and (pointer:fine) and (width>=1180px){.project-preview{padding-top:calc(4rem + 10px - var(--control-size,2.5rem) / 2)}.project-preview-controls{margin-bottom:1rem}}.project-preview-controls>:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--text-color) 22%, transparent);border-radius:4px;outline:none}.pcompact-row.pcompact-row--returning{background-color:var(--row-selected);transition:none}.pcompact-row.pcompact-row--returned{transition:background-color var(--motion-data) var(--ease-data)}.count-morph{white-space:nowrap;display:inline-block;position:relative}.count-morph-char,.count-morph-leaving{white-space:pre;font-variant-numeric:tabular-nums;display:inline-block}
