@font-face{font-family:Paper Mono;src:url(/fonts/PaperMono-Variable.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-gutter:#1b1b1b;--color-bg-panel:#2b2b2b;--color-bg-canvas:#343434;--color-bg-raised:#3d3d3d;--color-bg-hover:#4a4a4a;--color-bg-field:#1f1f1f;--color-bg-display:#151515;--color-line:#161616;--color-line-subtle:#424242;--color-line-strong:#555;--color-text:#d9d9d9;--color-text-muted:#a3a3a3;--color-text-faint:#7a7a7a;--color-text-on-color:#161616;--color-accent:#ffa629;--color-value:#63c7ea;--color-value-fill:#2f4650;--color-select:#b8a273;--color-danger:#f2584a;--color-success:#a6d38c;--color-warning:#dd7350;--color-cat-periwinkle:#99a7ff;--color-cat-orchid:#d673e4;--color-cat-violet:#8f72f0;--color-cat-sky:#a2d3f8;--color-cat-ice:#cbeff7;--color-cat-sage:#bbdc9e;--color-cat-lemon:#f3eb7e;--color-cat-mustard:#dba941;--color-cat-blush:#e8a8a5;--color-cat-stone:#ababab;--color-grid:#363636;--color-axis:var(--color-text-faint);--color-series-1:var(--color-cat-periwinkle);--color-series-2:var(--color-cat-mustard);--color-series-3:var(--color-cat-orchid);--color-series-4:var(--color-cat-sage);--color-series-5:var(--color-cat-sky);--color-series-6:var(--color-cat-blush);--color-series-7:var(--color-cat-violet);--color-series-8:var(--color-cat-lemon);--color-seq-1:#272b3d;--color-seq-2:#38406b;--color-seq-3:#5560a6;--color-seq-4:#7f8de6;--color-seq-5:#bac3ff;--color-div-neg:#ee8a80;--color-div-mid:#3d3d3d;--color-div-pos:#7dbfea;--font-sans:"Paper Mono", ui-monospace, monospace;--font-mono:"Paper Mono", ui-monospace, monospace;--text-micro:10px;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-display:32px;--text-hero:56px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.02em;--tracking-normal:0em;--tracking-caps:.06em;--leading-tight:14px;--leading-row:16px;--leading-body:18px;--leading-relaxed:24px;--spacing-px:1px;--spacing-2xs:2px;--spacing-xs:4px;--spacing-sm:6px;--spacing-md:8px;--spacing-lg:12px;--spacing-xl:16px;--spacing-control:18px;--spacing-row:22px;--spacing-2xl:24px;--spacing-header:26px;--spacing-3xl:32px;--spacing-4xl:48px;--spacing-5xl:64px;--spacing-6xl:96px;--radius-xs:2px;--radius-sm:3px;--radius-md:5px;--radius-pill:999px;--opacity-ghost:20%;--opacity-disabled:40%;--opacity-muted:60%;--container-card:240px;--container-sidebar:232px;--container-inspector:288px;--container-panel:216px;--container-prose:640px;--container-page:1200px;--breakpoint-tablet:768px;--breakpoint-laptop:1280px;--breakpoint-desktop:1512px;--breakpoint-wide:1920px;--page-max:1470px;--inset:20px}@media (width>=768px){:root{--inset:16px}}:root{--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--press:scale(.97);--appbar-h:calc(87px + env(safe-area-inset-top,0px))}@media (width>=768px){:root{--appbar-h:42px}}*,:before,:after{box-sizing:border-box;margin:0}html{background:var(--color-bg-gutter);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-row);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-wrap:anywhere;scrollbar-gutter:stable;scrollbar-color:var(--color-line-strong) var(--color-bg-gutter)}html:has(.window){overflow:hidden}body{background:var(--color-bg-gutter);justify-items:center;min-height:100dvh;display:grid}img,svg,video,canvas{display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a,[role=button],[role=slider]{touch-action:manipulation}button,[role=button],.tab,.tag,.pill,.pill-accent,.button-accent{-webkit-user-select:none;user-select:none}ul,ol{padding:0;list-style:none}h1,h2,h3,h4{font:inherit}::selection{background:var(--color-value-fill);color:var(--color-text)}.page{width:100%;max-width:var(--page-max);flex-direction:column;min-width:0;padding-inline:1px;display:flex}.panel{background:var(--color-bg-panel);border-radius:var(--radius-sm)}.faint{color:var(--color-text-faint)}.muted{color:var(--color-text-muted)}.link{color:var(--color-value);transition:color .15s}@media (width>=768px){.phone-only{display:none!important}}@media (width<=767px){.page{padding-inline:0}.panel{border-radius:0}.desktop-only{display:none!important}}@media (hover:hover) and (pointer:fine){.link:hover{color:var(--color-cat-ice)}}.pill,.pill-accent,.button-accent{transition:transform .16s var(--ease-out), background-color .15s ease;flex-shrink:0;align-items:center;display:inline-flex}.pill:active,.pill-accent:active,.button-accent:active{transform:var(--press)}.pill{border-radius:var(--radius-pill);background:var(--color-bg-raised);height:28px;font-size:var(--text-sm);font-weight:var(--font-weight-medium);gap:6px;padding-inline:14px;line-height:16px}.pill .arrow{color:var(--color-value);font-weight:var(--font-weight-regular)}.pill-accent{border-radius:var(--radius-pill);background:var(--color-accent);height:28px;color:var(--color-text-on-color);font-size:var(--text-base);font-weight:var(--font-weight-medium);padding-inline:14px;line-height:18px}.button-accent{border-radius:var(--radius-xs);background:var(--color-accent);height:26px;color:var(--color-text-on-color);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);gap:6px;padding-inline:10px;line-height:16px}@media (hover:hover) and (pointer:fine){.pill:hover{background:var(--color-bg-hover)}.pill-accent:hover,.button-accent:hover{background:color-mix(in oklab, var(--color-accent), white 14%)}}.tags{flex-wrap:wrap;gap:4px;display:flex}.tag{border-radius:var(--radius-xs);color:var(--color-text-on-color);font-size:var(--text-xs);white-space:nowrap;padding:1px 6px;line-height:14px}.not-found{min-height:50dvh;font-size:var(--text-base);justify-content:center;align-items:center;gap:12px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.appbar{z-index:20;background:var(--color-bg-gutter);padding-block:1px;position:sticky;top:0}.appbar-inner{height:40px;padding-inline:var(--inset);border-radius:var(--radius-sm);background:var(--color-bg-panel);align-items:center;gap:12px;display:flex;position:relative}.appbar-end{flex:1 1 0}.player{--button:22px;--title:200px;--meter:calc(16 * 2px + 15 * 2px);--deck:calc(3 * var(--button) + 2 * 2px + 10px + var(--title) + 10px + var(--meter));flex:1 1 0;align-items:center;gap:10px;min-width:0;display:flex}.transport{flex-shrink:0;gap:2px;display:flex}.transport-button{width:var(--button);height:var(--button);border-radius:var(--radius-xs);background:var(--color-bg-raised);color:var(--color-text);cursor:pointer;transition:transform .12s var(--ease-out), background-color .15s ease;border:0;place-items:center;padding:0;display:grid}.transport-button.primary{background:var(--color-accent);color:var(--color-text-on-color)}.transport-button:active:not(:disabled){transform:scale(.92)}.transport-button:disabled{opacity:var(--opacity-disabled);cursor:default}@media (hover:hover) and (pointer:fine){.transport-button:hover:not(:disabled){background:var(--color-bg-hover)}.transport-button.primary:hover:not(:disabled){background:color-mix(in oklab, var(--color-accent), white 14%)}}.track-area{width:var(--title);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-shrink:0;align-self:flex-end;padding:0;transition:color .15s}.track-area:disabled{cursor:default}@media (hover:hover) and (pointer:fine){.track-area:hover:not(:disabled){color:var(--color-accent)}}.title-clip{height:var(--leading-row);position:relative;overflow:clip}.title-text{font-size:var(--text-base);line-height:var(--leading-row);white-space:nowrap;will-change:transform;display:inline-block}.title-clip[data-overflow=true]:after{content:"";background:linear-gradient(90deg, transparent, var(--color-bg-panel));width:28px;position:absolute;inset:0 0 0 auto}.title-clip[data-scrolling=true] .title-text{animation:marquee var(--marquee) linear infinite alternate}@keyframes marquee{0%,12%{transform:translate(0)}88%,to{transform:translateX(calc(-1 * var(--overflow) - 28px))}}.meter{width:var(--meter);flex-shrink:0;align-self:flex-end;align-items:flex-end;gap:2px;height:14px;display:flex}.meter i{background:var(--color-accent);transform-origin:bottom;width:2px;height:14px;transition:transform .32s var(--ease-out);transform:scaleY(.143)}.player[data-playing=true] .meter i{transition:none}.player[data-empty=true] .meter i{background:var(--color-line-strong)}.playlist{top:calc(100% + 6px);left:var(--inset);z-index:1;width:var(--deck);border:1px solid var(--color-line-subtle);border-radius:var(--radius-sm);background:var(--color-bg-raised);transform-origin:0 0;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out), visibility 0s;flex-direction:column;padding:3px;display:flex;position:absolute;overflow:clip;box-shadow:0 2px 6px #00000052,0 12px 32px -4px #0000008f}.playlist[data-open=false]{visibility:hidden;opacity:0;transition:opacity .12s,transform .12s,visibility 0s .12s;transform:translateY(-4px)scale(.98)}@media (prefers-reduced-motion:reduce){.playlist,.playlist[data-open=false]{transform:none}}.playlist-divider{background:var(--color-line-subtle);flex-shrink:0;height:1px}.seek{flex-shrink:0;align-items:center;gap:8px;height:28px;padding-inline:6px;display:flex}.seek-bar{border-radius:var(--radius-xs);background:var(--color-bg-field);cursor:ew-resize;touch-action:none;flex:1 1 0;height:18px;position:relative;overflow:clip}.seek-fill{border-right:2px solid var(--color-value);background:var(--color-value-fill);width:100%;height:100%;transform:translate(calc(2px - 100%))}.seek-time{font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:baseline;gap:4px;line-height:14px;display:flex}.seek-now{min-width:var(--clock);color:var(--color-value);text-align:right}.seek-total{min-width:calc(var(--clock) + 2ch);color:var(--color-text-faint)}.playlist-tracks{flex-shrink:0;height:270px;position:relative}.playlist-scroll{overscroll-behavior:contain;scrollbar-width:none;height:100%;padding-top:3px;overflow-y:auto}.playlist-scroll::-webkit-scrollbar{display:none}.playlist-fade{background:linear-gradient(180deg, transparent, var(--color-bg-raised));pointer-events:none;height:28px;transition:opacity .16s;position:absolute;inset:auto 0 0}.playlist-tracks[data-end=true] .playlist-fade{opacity:0}.album{align-items:center;gap:8px;height:36px;padding-inline:6px;display:flex}.album-cover{border-radius:var(--radius-xs);object-fit:cover;flex-shrink:0;width:28px;height:28px}.album-name{flex-direction:column;flex:1 1 0;gap:1px;min-width:0;display:flex}.album-title{font-size:var(--text-xs);font-weight:var(--font-weight-medium);line-height:14px}.album-artist,.album-meta{font-size:var(--text-micro);line-height:12px}.album-artist{color:var(--color-text-muted)}.album-meta{color:var(--color-text-faint);flex-shrink:0}.album-tracks{margin:0;padding:0;list-style:none}.playlist-row{border-radius:var(--radius-xs);width:100%;min-height:22px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;align-items:flex-start;gap:8px;padding:4px 6px 4px 4px;display:flex}:where([data-keys]) .playlist-row:focus-visible{outline-offset:-1px}.row-number,.row-duration{font-size:var(--text-micro);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:1px;line-height:12px}.row-number{width:28px;color:var(--color-text-faint)}.row-title{min-width:0;font-size:var(--text-xs);flex:1 1 0;line-height:14px}.row-duration{width:32px;color:var(--color-text-muted)}.playlist-row[aria-current=true] :is(.row-number,.row-title,.row-duration){color:var(--color-accent)}.playlist-row[aria-current=true] .row-title{font-weight:var(--font-weight-medium)}.playlist-row:active{background:var(--color-select)}.playlist-row:active :is(.row-number,.row-title,.row-duration){color:var(--color-text-on-color)}@media (hover:hover) and (pointer:fine){.playlist-row:hover{background:var(--color-select)}.playlist-row:hover :is(.row-number,.row-title,.row-duration){color:var(--color-text-on-color)}}.tabs{flex-shrink:0;gap:4px;display:flex}.tab{border-radius:var(--radius-xs);background:var(--color-bg-field);color:var(--color-text-muted);font-size:var(--text-base);transition:background-color .16s ease, color .16s ease, transform .12s var(--ease-out);padding:3px 10px;line-height:16px}.tab[aria-current=page]{background:var(--color-accent);color:var(--color-text-on-color);font-weight:var(--font-weight-medium)}.tab:active{transform:var(--press)}@media (hover:hover) and (pointer:fine){.tab:not([aria-current=page]):hover{background:var(--color-bg-raised);color:var(--color-text)}}@media (width<=767px){.appbar{padding-top:0}.appbar-inner{height:auto;padding:env(safe-area-inset-top,0px) 0 0;border-radius:0;flex-wrap:wrap;gap:0}.player{--button:28px;height:44px;padding:10px var(--inset) 6px;flex:1 0 100%}.track-area{flex:1 1 0;width:auto;min-width:0}.playlist{right:var(--inset);width:auto}.tabs{padding:4px var(--inset) 10px;flex:1 0 100%}.tab{white-space:nowrap;text-align:center;flex:auto;padding:6px 4px}.appbar-end{display:none}}.home{flex-direction:column;gap:1px;min-width:0;padding-bottom:1px;display:flex}.section{min-width:0;scroll-margin-top:var(--appbar-h);flex-direction:column;gap:1px;display:flex}.section-header{height:32px;padding-inline:var(--inset);align-items:center;gap:8px;display:flex}.section.joined{gap:0}.section.joined>.section-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.section-header h2,.raised-header h2{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:16px}.section-header.split h2,.section-header.split>span:last-child{flex:1 1 0}.resume-link{font-size:var(--text-xs);white-space:nowrap;line-height:14px}.hero-row{flex-direction:row}.portrait{width:420px;padding:20px var(--inset);flex-direction:column;flex-shrink:0;gap:16px;display:flex}.avatar{border-radius:var(--radius-xs);object-fit:cover;flex-shrink:0;width:200px;height:200px}.headline{font-size:var(--text-xl);font-weight:var(--font-weight-medium);letter-spacing:-.01em;line-height:28px}.portrait .pill-accent{align-self:flex-start}.contacts{flex-direction:column;flex-grow:1;justify-content:flex-end;padding-top:4px;display:flex}.contact{border-top:1px solid var(--color-line-subtle);height:22px;font-size:var(--text-xs);align-items:center;line-height:14px;display:flex}.contact-label{width:72px;color:var(--color-text-faint);flex-shrink:0;transition:color .15s}.contact-value{min-width:0;color:var(--color-value);flex-grow:1}.contact-arrow{color:var(--color-text-faint);transition:color .15s ease, transform .2s var(--ease-out)}@media (hover:hover) and (pointer:fine){.contact:hover .contact-label{color:var(--color-text-muted)}.contact:hover .contact-arrow{color:var(--color-value);transform:translate(1px,-1px)}}@media (width<=1199px){.hero-row{flex-direction:column}.portrait{width:auto}}@media (width<=767px){.portrait{padding:24px var(--inset) 16px;gap:14px}.avatar{width:120px;height:120px}.contacts{padding-top:0}.contact{height:36px;font-size:var(--text-sm);line-height:16px}}.projects-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}@media (width<=1099px){.projects-row{grid-template-columns:minmax(0,1fr)}}@media (width>=1100px){.projects-row .project{grid-row:span 7;grid-template-rows:subgrid;row-gap:0;display:grid}.projects-row .project-body{grid-row:span 6;grid-template-rows:subgrid;row-gap:16px;display:grid}}.project{flex-direction:column;min-width:0;display:flex;overflow:clip}.project-bar{height:var(--spacing-header);padding-inline:var(--inset);background:var(--project);color:var(--color-text-on-color);flex-shrink:0;align-items:center;gap:10px;display:flex}.project-bar .icon{transition:transform .22s var(--ease-out);flex-shrink:0}.project-repo{font-size:var(--text-base);font-weight:var(--font-weight-medium);flex-grow:1;line-height:16px}.project-bar:active .icon{transform:scale(.9)}@media (hover:hover) and (pointer:fine){.project-bar:hover .icon{transform:scale(1.18)}}.project-body{padding:16px var(--inset) 20px;flex-direction:column;flex-grow:1;gap:16px;display:flex}.media{border:1px solid var(--color-line-strong);border-radius:var(--radius-xs);background:var(--color-bg-display);flex-shrink:0;justify-content:center;align-items:center;height:250px;display:flex;position:relative;overflow:clip}@media (width>=768px) and (width<=1099px){.media{aspect-ratio:16/9;height:auto;min-height:0}}.media>img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.compare{cursor:ew-resize;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;justify-content:stretch;align-items:stretch}.compare-side{align-items:flex-end;padding:8px;display:flex;position:absolute;inset:0}.compare-side img{object-fit:cover;object-position:45% 50%;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.compare-side span{border-radius:var(--radius-xs);font-size:var(--text-xs);padding:1px 6px;line-height:14px;position:relative}.compare-side.original span{background:var(--color-bg-display);color:var(--color-text-muted)}.compare-side.upscaled{clip-path:inset(0 0 0 var(--split));justify-content:flex-end}.compare-side.upscaled span{background:var(--color-cat-orchid);color:var(--color-text-on-color)}.compare-handle{inset:0 auto 0 var(--split);width:0;position:absolute}.compare-line{background:var(--color-cat-orchid);width:2px;position:absolute;inset:0 auto 0 -1px}.compare-knob{background:var(--color-cat-orchid);width:20px;height:20px;transition:scale .16s var(--ease-out);border-radius:999px;position:absolute;top:50%;left:0;translate:-50% -50%}.compare:active .compare-knob{scale:1.15}:where([data-keys]) .compare-handle:focus-visible{outline:none}:where([data-keys]) .compare-handle:focus-visible .compare-knob{outline:1px solid var(--color-text);outline-offset:3px}.project-name{flex-shrink:0;align-items:center;gap:10px;display:flex}.project-name h3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.015em;line-height:24px}.wip{border:1px solid var(--color-accent);border-radius:var(--radius-xs);color:var(--color-accent);font-size:var(--text-micro);align-items:center;gap:5px;padding:1px 6px;line-height:12px;display:flex}.wip i{background:var(--color-accent);border-radius:999px;width:5px;height:5px}.project-desc{min-height:80px;color:var(--color-text-muted);font-size:var(--text-base);line-height:20px}.project-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.project-stats{flex-direction:column;flex-grow:1;display:flex;container-type:inline-size}.project-stats>.stats{flex-grow:1}@media (width<=767px){.media{height:196px}.project-desc{min-height:0}.project-actions .pill{height:32px;padding-inline:16px}.project-stats{justify-content:flex-end}}.stats{border-radius:var(--radius-xs);background:var(--color-bg-display);height:132px;font-size:var(--text-xs);flex-direction:column;flex-shrink:0;gap:8px;padding:12px;line-height:14px;display:flex}.stats-senmei,.stats-xport{justify-content:space-between;gap:0}.stats-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.stats .big{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:20px}.narrow-only{display:none}.letui-main{flex-shrink:0;gap:16px;height:54px;display:flex}.percentiles{flex:auto;min-width:0;position:relative}.mark{flex-direction:column;align-items:center;gap:1px;width:40px;display:flex;position:absolute;top:0;translate:-50%}.mark-start{align-items:flex-start;width:auto;left:0;translate:none}.mark-end{align-items:flex-end;width:auto;right:0;translate:none}.mark-label{color:var(--color-axis);font-size:9px;line-height:11px}.mark-value{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);line-height:20px}.bar{height:6px;display:flex}.bar i{border-radius:1px;flex-basis:0}.bar-1{gap:1px;position:absolute;inset:42px 0 auto}.bar-2{gap:2px}.bar-2 i{min-width:2px}.fps{border-left:1px solid var(--color-line-subtle);flex-direction:column;flex-shrink:0;justify-content:center;gap:2px;width:132px;padding-left:16px;display:flex}.phases{flex-direction:column;gap:4px;display:flex}.legend{white-space:nowrap;align-items:center;gap:6px;display:flex}.legend-item{display:contents}.legend-spare{text-align:right;flex-grow:1}.swatch{border-radius:1px;flex-shrink:0;width:8px;height:8px}.metrics{gap:8px;display:flex}.metric{flex-direction:column;flex:1 1 0;gap:2px;min-width:0;display:flex}.metric .muted{white-space:nowrap}.npm-row{align-items:center;gap:8px;display:flex}.npm-row svg{flex-shrink:0}.npm-row .link{flex-grow:1}.npm-meta{justify-content:flex-end;display:flex}.pending{border-radius:var(--radius-xs);background:var(--color-bg-raised);color:#0000;animation:1.4s ease-in-out infinite alternate pending}@keyframes pending{to{opacity:.5}}.rule{background:var(--color-line-subtle);flex-shrink:0;height:1px}.scores{justify-content:space-between;display:flex}.score{align-items:center;gap:8px;display:flex}.ring{flex-shrink:0;width:32px;height:32px;position:relative}.ring circle{fill:none;stroke-width:3px}.ring-track{stroke:var(--color-line-subtle)}.ring-value{stroke:var(--color-success)}.ring-text{color:var(--color-success);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);place-items:center;line-height:14px;display:grid;position:absolute;inset:0}.ring-text.small{font-size:var(--text-micro);line-height:12px}@container (width<=408px){.wide-only{display:none}.narrow-only{display:revert}.stats{height:auto;min-height:132px}.stats-letui .legend{justify-content:space-between}.stats-senmei{gap:8px}.stats-xport{gap:10px}.metric:last-child .muted{white-space:normal}.stats-xport .scores{padding-inline:4px}.stats-xport .score{flex-direction:column;gap:6px}}.projects-tile{flex-direction:column;display:flex}.projects-row .project:first-child{border-top-left-radius:0;border-top-right-radius:0}.projects-row .project:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}@media (width>=1100px){.projects-row .project{border-radius:0}}.more-github{padding:0 var(--inset) 20px;border-top-left-radius:0;border-top-right-radius:0;justify-content:center;display:flex}.work{padding:20px var(--inset);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--color-bg-display);flex-direction:column;gap:14px;display:flex}.timeline{flex-direction:column;gap:14px;display:flex;container-type:inline-size}.timeline-label{color:var(--color-accent);font-size:var(--text-micro);font-weight:var(--font-weight-semibold);line-height:12px}.tracks{flex-direction:column;gap:6px;display:flex;position:relative}.gridlines{pointer-events:none;width:min(900px,100% - 205px);position:absolute;inset:0 auto 0 149px}.gridlines i{background:var(--color-grid);width:1px;position:absolute;inset-block:0}.gridlines .now{border-left:1px dashed var(--color-accent);background:0 0;width:0}.track{align-items:center;gap:9px;height:22px;display:flex;position:relative}.track-name{width:140px;font-size:var(--text-sm);flex-shrink:0;line-height:16px}.track-lane,.axis-lane{flex:0 900px;min-width:0;max-width:calc(100% - 205px);position:relative}.track-lane{height:14px}.track-bar{border-radius:2px;height:14px;position:absolute;top:0}.track-duration{top:1px;left:calc(var(--end) * 100% + 8px);color:var(--color-text-muted);font-size:var(--text-micro);white-space:nowrap;line-height:12px;position:absolute}.axis{border-top:1px solid var(--color-line-strong);gap:9px;height:16px;padding-top:4px;display:flex;position:relative}.axis>span:first-child{flex-shrink:0;width:140px}.axis-lane{height:12px}.axis-lane>span{white-space:nowrap;color:var(--color-text-faint);font-size:var(--text-micro);line-height:12px;position:absolute;top:0}.axis-lane>.current{color:var(--color-text)}@container (width<=640px){.gridlines{width:100%;left:0}.tracks{gap:10px}.track{flex-direction:column;align-items:stretch;gap:4px;height:auto}.track-name{width:auto}.track-lane{flex:none;max-width:none}.track-lane,.track-bar{height:10px}.axis-lane{flex:auto;max-width:none}.track-duration{top:-18px;right:calc((1 - var(--now)) * 100% + 6px);left:auto}.axis>span:first-child{display:none}.axis{height:18px;padding-top:4px}}.roles{flex-direction:column;padding-top:10px;display:flex}.role{border-top:1px solid var(--color-line-subtle);grid-template-columns:140px 150px minmax(0,1fr);column-gap:9px;padding-block:12px;display:grid}.role:last-child{padding-bottom:0}.role-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);line-height:18px}.role-name.linked{color:var(--color-value)}.role-name a{transition:color .15s}@media (hover:hover) and (pointer:fine){.role-name a:hover{color:var(--color-cat-ice)}}.role-dates{color:var(--color-text-faint);font-size:var(--text-xs);line-height:18px}.role-text{color:var(--color-text-muted);font-size:var(--text-base);line-height:20px}@media (width<=767px){.work{background:var(--color-bg-gutter);border-radius:0;gap:1px;padding:0}.timeline{padding:18px var(--inset) 16px;background:var(--color-bg-display);gap:12px}.roles{padding:4px var(--inset);background:var(--color-bg-panel)}.role{grid-template-columns:minmax(0,1fr) auto;row-gap:6px;padding-block:14px}.role:first-child{border-top:0}.role:last-child{padding-bottom:14px}.role-name{font-size:var(--text-base)}.role-text{font-size:var(--text-sm);grid-column:1/-1;line-height:19px}}.card-panel{border-radius:var(--radius-sm);background:var(--color-bg-panel);gap:0;overflow:clip}.raised-header{height:32px;padding-inline:var(--inset);background:var(--color-bg-raised);flex-shrink:0;align-items:center;display:flex}.more-bar{gap:10px}.more-bar .icon{transition:transform .22s var(--ease-out);flex-shrink:0}.more-bar:active .icon{transform:scale(.9)}@media (hover:hover) and (pointer:fine){.more-bar:hover .icon{transform:scale(1.18)}}.posts{padding:8px var(--inset) 4px}.posts li+li{border-top:1px solid var(--color-line-subtle)}.post-row{gap:24px;padding-block:18px;display:flex}.post-row time{width:130px;color:var(--color-text-faint);font-size:var(--text-sm);flex-shrink:0;line-height:24px}.post-body{flex-direction:column;flex:1 1 0;gap:8px;min-width:0;display:flex}.post-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.015em;text-transform:lowercase;line-height:24px;transition:color .16s}.post-desc{color:var(--color-text-muted);font-size:var(--text-base);text-transform:lowercase;line-height:20px}.post-row .tags{transition:transform .22s var(--ease-out)}@media (hover:hover) and (pointer:fine){.post-row:hover .post-title{color:var(--color-accent)}}.footer{height:26px;padding-inline:var(--inset);color:var(--color-text-faint);font-size:var(--text-xs);justify-content:flex-end;align-items:center;line-height:14px;display:flex}@media (width<=767px){.card-panel{border-radius:0}.post-row{flex-direction:column;gap:8px;padding-block:16px}.post-row time{width:auto;font-size:var(--text-xs);line-height:14px}.post-desc{font-size:var(--text-sm);line-height:19px}.footer{height:auto;padding:16px var(--inset) calc(36px + env(safe-area-inset-bottom,0px));justify-content:flex-start}}.clip>video{object-fit:cover;object-position:top;opacity:0;width:100%;height:100%;transition:opacity .2s var(--ease-out);position:absolute;inset:0}.clip[data-shown=true]>video{opacity:1}.clip[data-lifted=true]>:is(img,video){visibility:hidden}.clip-open{cursor:zoom-in;background:0 0;border:0;justify-content:flex-end;align-items:flex-end;padding:8px;display:flex;position:absolute;inset:0}.clip-chip{border-radius:var(--radius-xs);background:color-mix(in srgb, var(--color-bg-display) 82%, transparent);width:28px;height:28px;box-shadow:inset 0 0 0 1px var(--color-line-strong);color:var(--color-text);cursor:pointer;transition:transform .12s var(--ease-out), background-color .15s ease;border:0;place-items:center;padding:0;display:grid}.clip-toggle{position:absolute;bottom:8px;left:8px}button.clip-chip:active,.clip-open:active .clip-chip{transform:var(--press)}@media (hover:hover) and (pointer:fine){button.clip-chip:hover,.clip-open:hover .clip-chip{background:var(--color-bg-raised)}}html:has(.clip-lightbox[open]){overflow:hidden}.clip-lightbox{background:0 0;border:0;outline:none;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.clip-lightbox[open]{place-items:center;display:grid}.clip-lightbox::backdrop{background:0 0}.clip-scrim{background:var(--color-bg-gutter);cursor:zoom-out;position:absolute;inset:0}.clip-stage{--bar:28px;--gap:12px;gap:var(--gap);width:min(100% - 2 * var(--inset), var(--page-max) - 2 * var(--inset), (100dvh - 2 * var(--inset) - var(--gap) - var(--bar)) * var(--ratio));flex-direction:column;display:flex;position:relative}.clip-frame{aspect-ratio:var(--ratio);border-radius:var(--radius-sm);background:var(--color-bg-display);transform-origin:0 0;will-change:transform, clip-path;overflow:clip}.clip-frame video{cursor:pointer;width:100%;height:100%;display:block}.clip-bar{height:var(--bar);align-items:center;gap:12px;display:flex}.clip-track{background:var(--color-line-subtle);flex-grow:1;height:2px;overflow:clip}.clip-track i{background:var(--color-text-muted);transform-origin:0;height:100%;display:block;transform:scaleX(0)}:where([data-keys]) :where([data-control]):focus-visible{outline:1px solid var(--color-text);outline-offset:2px}:where([data-keys]) [data-control=number]:focus-visible{border-color:var(--color-text);outline:none}.icon-button{border-radius:var(--radius-xs);background:var(--color-bg-raised);color:#959595;cursor:pointer;border:0;place-items:center;width:18px;height:18px;padding:0;display:grid}.icon-button.play-toggle{width:36px}.icon-button.play-toggle[aria-pressed=true]{background:var(--color-success);color:var(--color-text-on-color)}.play-toggle[aria-pressed=true] .glyph-play,.play-toggle[aria-pressed=false] .glyph-pause{display:none}[data-control=segmented]{gap:1px;display:flex}[data-control=segmented] button{background:var(--color-bg-raised);font:inherit;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;border:0;border-radius:0;padding:2px 6px;line-height:14px}[data-control=segmented] button:first-child{border-radius:var(--radius-xs) 0 0 var(--radius-xs)}[data-control=segmented] button:last-child{border-radius:0 var(--radius-xs) var(--radius-xs) 0}[data-control=segmented] button[aria-pressed=true]{background:var(--color-accent);color:var(--color-text-on-color);font-weight:500}[data-control=toggles]{gap:4px;display:flex}[data-control=toggles] button{border:1px solid var(--color-value);border-radius:var(--radius-xs);font:inherit;font-size:var(--text-micro);letter-spacing:.06em;color:var(--color-value);cursor:pointer;background:0 0;padding:2px 6px;font-weight:500;line-height:12px}[data-control=toggles] button[aria-pressed=true]{background:var(--color-value);color:var(--color-text-on-color)}[data-control=number]{border-radius:var(--radius-xs);background:var(--color-bg-field);width:52px;height:18px;font:inherit;font-size:var(--text-xs);color:var(--color-value);text-align:right;cursor:ns-resize;touch-action:none;border:1px solid #0000;flex-shrink:0;padding-inline:5px;line-height:14px}[data-control=number][readonly]{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}[data-control=number]:not([readonly]),[data-control=number].active{border-color:var(--color-value);color:var(--color-text);cursor:text;outline:none}[data-control=number].accent{background:var(--color-accent);width:30px;color:var(--color-text-on-color);text-align:center;padding:0;font-weight:500}[data-control=number].accent:not([readonly]),[data-control=number].accent.active{border-color:var(--color-text)}[data-control=number].warning{color:var(--color-warning)}[data-control=fader]{border-radius:var(--radius-xs);background:var(--color-bg-field);cursor:ew-resize;touch-action:none;flex:1 1 0;align-items:center;height:18px;display:flex;position:relative;overflow:clip}[data-control=fader] .fill{background:var(--color-value-fill);border-right:2px solid var(--color-value);flex-shrink:0;height:18px}[data-control=fader] .name,[data-control=fader] .value{font-size:var(--text-xs);pointer-events:none;line-height:14px;position:absolute;top:2px}[data-control=fader] .name{color:var(--color-text-muted);left:6px}[data-control=fader] .value{color:var(--color-value);right:6px}[data-control=meter]{cursor:ew-resize;touch-action:none;flex-grow:1;gap:1px;height:10px;display:flex}[data-control=meter] span{background:var(--color-bg-raised);flex:1 1 0}[data-control=meter] span.on{background:var(--color-value)}[data-control=meter] span.hot{background:var(--color-warning)}.group-label{height:16px;font-size:var(--text-micro);letter-spacing:.06em;color:var(--color-text-faint);line-height:12px}.row{border-bottom:1px solid var(--color-line-subtle);align-items:center;gap:8px;height:36px;display:flex}.group .row:last-child{border-bottom:0}.row-label{flex-direction:column;flex-shrink:0;width:96px;display:flex}.row-label span:first-child{font-size:var(--text-xs);line-height:10px}.row-label span:last-child{font-size:var(--text-micro);color:var(--color-text-faint);line-height:10.5px}[data-control=knob]{width:62px;color:var(--color-value);cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;padding:2px 0 3px;display:flex;position:relative}[data-control=knob] .label{font-size:var(--text-xs);color:var(--color-text-muted);line-height:14px}[data-control=knob] .value{font-size:var(--text-xs);line-height:14px}[data-control=knob] svg{fill:none;display:block}[data-control=knob] .track{stroke:var(--color-line-subtle);stroke-width:3px}[data-control=knob] .arc{stroke:currentColor;stroke-width:3px}[data-control=knob] .pointer{stroke:var(--color-text);stroke-width:2px;stroke-linecap:round}[data-control=knob].active,:where([data-keys]) [data-control=knob]:focus-visible{color:var(--color-accent);outline:none}[data-control=knob] .corner{border:0 solid var(--color-accent);width:6px;height:6px;display:none;position:absolute}[data-control=knob].active .corner,:where([data-keys]) [data-control=knob]:focus-visible .corner{display:block}[data-control=knob] .tl{border-top-width:1px;border-left-width:1px;top:0;left:0}[data-control=knob] .tr{border-top-width:1px;border-right-width:1px;top:0;right:0}[data-control=knob] .bl{border-bottom-width:1px;border-left-width:1px;bottom:0;left:0}[data-control=knob] .br{border-bottom-width:1px;border-right-width:1px;bottom:0;right:0}[data-control=graph]{flex-direction:column;gap:4px;display:flex}:where([data-keys]) [data-control=graph]:focus-visible{outline:none}[data-control=graph] .display{border-radius:var(--radius-xs);background:var(--color-bg-display);cursor:crosshair;touch-action:none;position:relative;overflow:clip}:where([data-keys]) [data-control=graph]:focus-visible .display{outline:1px solid var(--color-text);outline-offset:2px}[data-control=graph] svg{fill:none;position:absolute;inset:0}[data-control=graph] .grid{stroke:#2a2a2a;stroke-width:1px}[data-control=graph] .grid.zero{stroke:#383838}[data-control=graph] .curve{stroke:var(--color-value);stroke-width:1.5px;stroke-linejoin:round}[data-control=graph] .guide{stroke:#ffa62973;stroke-dasharray:2 3;display:none}[data-control=graph].dragging .guide{display:block}[data-control=graph] .handle{border:1.5px solid var(--color-text-muted);background:var(--color-bg-display);width:14px;height:14px;color:var(--color-text-muted);cursor:grab;border-radius:999px;place-items:center;font-size:9px;line-height:10px;display:grid;position:absolute;top:-7px;left:-7px}[data-control=graph] .handle.selected{border-color:var(--color-accent);color:var(--color-accent)}[data-control=graph].dragging .handle.selected{box-shadow:0 0 0 5px var(--color-bg-display), 0 0 0 6px #ffa62959;cursor:grabbing;background:#ffa62940}.graph-readouts{font-size:var(--text-xs);letter-spacing:normal;align-items:center;gap:10px;line-height:12px;display:flex}.graph-readouts .badge{border:1.5px solid var(--color-accent);width:13px;height:13px;color:var(--color-accent);border-radius:999px;place-items:center;margin-right:-4px;font-size:8px;line-height:9px;display:grid}.graph-readouts .label{font-size:var(--text-micro);color:var(--color-text-faint)}.graph-readouts .value{color:var(--color-accent)}[data-control=rail]{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;min-height:0;display:flex;position:relative}:where([data-keys]) [data-control=rail]:focus-visible{outline:none}[data-control=rail] svg{fill:none;width:40px;height:100%;overflow:visible}[data-control=rail] rect.selected{fill:var(--color-bg-raised)}[data-control=rail] rect.hover{fill:#3d3d3d73}[data-control=rail] .line{stroke-width:1px}[data-control=rail] .line.hover{stroke:var(--color-text)}[data-control=rail] .line.selected{stroke:var(--color-accent);stroke-width:2px}[data-control=rail] .caret{fill:var(--color-accent)}:where([data-keys]) [data-control=rail]:focus-visible rect.selected{fill:var(--color-bg-hover)}@media (hover:hover) and (pointer:fine){.icon-button:hover,[data-control=segmented] button:hover{background:var(--color-bg-hover);color:var(--color-text)}[data-control=toggles] button:hover{background:var(--color-value-fill);color:var(--color-text)}[data-control=fader]:hover .name,[data-control=knob]:hover .label,:where([data-keys]) [data-control=knob]:focus-visible .label,[data-control=knob].active .label{color:var(--color-text)}[data-control=knob]:hover .track,[data-control=knob].active .track{stroke:var(--color-line-strong)}}.lab{flex:1 1 0;gap:1px;min-width:0;min-height:486px;display:flex}.stage{border-radius:var(--radius-sm);background:var(--color-bg-display);flex:3 1 0;min-width:0;position:relative;overflow:clip}.stage .still,.stage canvas{width:100%;height:100%;position:absolute;inset:0}.stage .still{object-fit:cover;transition:opacity .5s}.stage canvas{opacity:0;cursor:crosshair;transition:opacity .5s}.lab[data-mode=live] canvas{opacity:1}.lab[data-mode=live] .still{opacity:0}.stage .label{color:var(--color-text-faint);font-size:var(--text-micro);pointer-events:none;line-height:12px;position:absolute}.stage .formula{top:12px;left:var(--inset)}.stage .count{bottom:12px;left:var(--inset)}.stage .count-short,.stage .hint{display:none}.stage .hint{right:var(--inset);bottom:12px}.stage .flag{border-radius:var(--radius-xs);background:var(--color-bg-raised);color:var(--color-accent);cursor:ns-resize;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;padding:1px 4px;transition:background-color .12s,color .12s;top:0;left:0}.stage .flag:hover,.stage .flag.dragging{background:var(--color-accent);color:var(--color-text-on-color)}.stage .flag[hidden]{display:none}.gesture{pointer-events:none;position:absolute;inset:0}.gesture[hidden]{display:none}.gesture .cross-x,.gesture .cross-y{--gap:19px;position:absolute}.gesture .cross-x{inset:var(--y) 0 auto;background:repeating-linear-gradient(90deg, var(--color-line-strong) 0 2px, transparent 2px 6px);height:1px;-webkit-mask-image:linear-gradient(90deg, #000 calc(var(--x) - var(--gap)), transparent calc(var(--x) - var(--gap)), transparent calc(var(--x) + var(--gap)), #000 calc(var(--x) + var(--gap)));mask-image:linear-gradient(90deg, #000 calc(var(--x) - var(--gap)), transparent calc(var(--x) - var(--gap)), transparent calc(var(--x) + var(--gap)), #000 calc(var(--x) + var(--gap)))}.gesture .cross-y{inset:0 auto 0 var(--x);background:repeating-linear-gradient(180deg, var(--color-line-strong) 0 2px, transparent 2px 6px);width:1px;-webkit-mask-image:linear-gradient(180deg, #000 calc(var(--y) - var(--gap)), transparent calc(var(--y) - var(--gap)), transparent calc(var(--y) + var(--gap)), #000 calc(var(--y) + var(--gap)));mask-image:linear-gradient(180deg, #000 calc(var(--y) - var(--gap)), transparent calc(var(--y) - var(--gap)), transparent calc(var(--y) + var(--gap)), #000 calc(var(--y) + var(--gap)))}.gesture .ring,.gesture .dot{top:var(--y);left:var(--x);border-radius:999px;position:absolute;translate:-50% -50%}.gesture .ring{background:#d9d9d90f;border:1px solid #d9d9d973;width:37px;height:37px}.gesture .dot{background:var(--color-text);width:5px;height:5px}.gesture .chips{right:clamp(8px, calc(100% - var(--x) + 8px), calc(100% - 128px));bottom:calc(100% - var(--y) + 8px);flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute}.gesture .chip{border-radius:var(--radius-xs);background:var(--color-bg-raised);align-items:center;gap:6px;padding:2px 6px;display:flex}.chip-label{color:var(--color-text-faint);font-size:var(--text-micro);line-height:12px}.chip-twist,.chip-chaos{font-size:var(--text-xs);font-variant-numeric:tabular-nums;line-height:14px}.chip-twist{color:var(--color-value)}.chip-chaos{color:var(--color-warning)}.rack{border-radius:var(--radius-sm);background:var(--color-bg-panel);-webkit-user-select:none;user-select:none;flex-direction:column;flex:2 1 0;min-width:406px;display:flex}.rack header{height:28px;padding:10px var(--inset) 0;flex-shrink:0;align-items:center;gap:8px;display:flex}.icon-button{transition:transform .12s var(--ease-out)}.icon-button:active{transform:scale(.9)}.rack .body{flex-grow:1;min-height:0;transition:opacity .28s;display:flex}.lab[data-mounted=false] .rack .body{opacity:0}.lab[data-mode=still] .rack .body,.lab[data-mode=still] .play-toggle{opacity:var(--opacity-muted)}.rack .controls{min-width:0;padding:7.5px var(--inset) 14px;flex-direction:column;flex:1 1 0;display:flex}.rack .controls .group-label{height:auto;padding:.5px 0 1px;line-height:12px}.stack{flex-direction:column;gap:7.5px;padding-block:8.5px 4px;display:flex}.stack [data-control=knob] svg{position:relative;top:1px}.graph-host{height:56px}.stack .knobs{justify-content:space-between;display:flex}.stack [data-control=knob]{width:54px;min-height:75px}.row>[data-control=segmented],.row>[data-control=toggles]{flex-shrink:0}.row>[data-control=segmented]:empty,.row>[data-control=toggles]:empty{height:16px}.row>[data-control=rail][data-orientation=horizontal]{cursor:ew-resize;touch-action:pan-y;flex:1 1 0;min-width:0;height:18px}.row>[data-control=rail][data-orientation=horizontal]:before{content:"";position:absolute;inset:-9px 0}.row>[data-control=rail][data-orientation=horizontal] svg{width:100%;height:100%;overflow:visible}.swatches{gap:1px;min-width:0;display:flex}.swatches span{width:8px;height:8px}.rack{--track:33px;--caret:7px}.rail-column{padding:7.5px var(--inset) 14px calc(12px - var(--caret));flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.rail-column .group-label{width:var(--track);white-space:nowrap}.rail-column [data-control=rail]{flex-grow:1;padding-block:4px 8px}.rail-column [data-control=rail] svg{width:calc(var(--caret) + var(--track))}.rail-column [data-control=number]{width:var(--track);text-align:center;flex-shrink:0;padding:0}@media (width<=1199px){.lab{flex:none;height:486px}}@media (width<=767px){.lab{flex-direction:column;height:auto;min-height:0}.stage{touch-action:pan-y;border-radius:0;flex:0 0 340px}.stage canvas{cursor:default}.stage .count-full{display:none}.stage .count-short,.stage .hint{display:block}.rack{border-radius:0;flex:none;min-width:0}.rack header{height:31px;padding-top:13px}.rack .controls{justify-content:flex-start;padding-top:10.5px}.rack [data-control=fader],.rack [data-control=meter],.rack [data-control=segmented] button,.rack [data-control=toggles] button{position:relative}.rack [data-control=fader]:before,.rack [data-control=meter]:before,.rack [data-control=segmented] button:before,.rack [data-control=toggles] button:before{content:"";position:absolute;inset:-10px 0}.rack [data-control=fader]{overflow:visible}.rack [data-control=fader] .fill{border-radius:var(--radius-xs) 0 0 var(--radius-xs)}}.window-layer{z-index:30;pointer-events:none;position:fixed;inset:0}.window{top:var(--appbar-h);width:calc(100% - 2px);max-width:calc(var(--page-max) - 2px);border-radius:var(--radius-sm);background:var(--color-bg-panel);pointer-events:auto;will-change:transform, clip-path;outline:none;flex-direction:column;margin-inline:auto;display:flex;position:absolute;bottom:1px;left:0;right:0;overflow:clip}.window[data-open=false]{pointer-events:none}.window-ghost{z-index:1;opacity:0;pointer-events:none;position:absolute;top:0;left:0}.window-bar{height:var(--spacing-header);padding-inline:0 var(--inset);background:var(--color-bg-raised);color:var(--color-text);flex-shrink:0;align-items:center;gap:10px;display:flex}.window-bar.on-color{color:var(--color-text-on-color)}.window-bar.section-bar{height:32px}.window-close{min-width:0;padding:0 0 0 var(--inset);text-align:left;cursor:pointer;background:0 0;border:0;flex-grow:1;align-self:stretch;align-items:center;gap:10px;display:flex}.window-close .icon{transition:transform .16s var(--ease-out);flex-shrink:0}.window-close:active .icon{transform:scale(.85)}@media (hover:hover) and (pointer:fine){.window-close:hover .icon{transform:scale(.88)}}.window-title{font-size:var(--text-base);font-weight:var(--font-weight-medium);white-space:nowrap;line-height:16px}.window-subtitle{min-width:0;color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;line-height:16px;overflow:hidden}.on-color .window-subtitle{color:inherit;opacity:var(--opacity-muted)}.window-action{font-size:var(--text-sm);font-weight:var(--font-weight-medium);white-space:nowrap;line-height:16px}@media (hover:hover) and (pointer:fine){.window-action:hover{text-underline-offset:3px;text-decoration:underline}}.window-scroll{overscroll-behavior:contain;scrollbar-color:var(--color-line-strong) transparent;scrollbar-width:thin;flex:1 1 0;min-height:0;padding:40px 24px 96px;overflow-y:auto}.window-body{justify-items:center;display:grid}.prose-column{flex-direction:column;gap:16px;width:min(760px,100%);min-width:0;display:flex}.post-layout{grid-template-columns:minmax(0,1fr) min(760px,100%) minmax(0,1fr);column-gap:24px;width:100%;display:grid}.post-layout .prose-column{grid-column:2}.toc{border-left:1px solid var(--color-line-subtle);width:min(248px,100% - 16px);font-size:var(--text-sm);flex-direction:column;grid-area:1/1;place-self:start;margin:8px 0 0 16px;display:flex;position:sticky;top:8px}.toc a{transition:color .15s}.toc-head{font-weight:var(--font-weight-semibold);line-height:var(--leading-body);padding:6px 0 6px 14px;display:block}.toc-items{flex-direction:column;gap:2px;padding:6px 0 14px;display:flex}.toc-items a{color:var(--color-text-muted);border-left:2px solid #0000;padding:4px 0 4px 22px;line-height:16px;position:relative;left:-1px}.toc-items a[aria-current]{border-left-color:var(--color-accent);color:var(--color-accent)}.toc-group.closed{border-top:1px solid var(--color-line-subtle);min-height:30px;color:var(--color-text-muted);font-weight:var(--font-weight-semibold);align-items:center;padding:7px 0 7px 14px;line-height:16px;display:flex}@media (hover:hover) and (pointer:fine){.toc-items a:not([aria-current]):hover,.toc-group.closed:hover{color:var(--color-text)}}@media (width<=1279px){.post-layout{grid-template-columns:minmax(0,1fr);justify-items:center}.post-layout .prose-column{grid-column:1}.toc{display:none}}.post-header{border-bottom:1px solid var(--color-line-subtle);flex-direction:column;gap:16px;padding-bottom:32px;display:flex}.post-header time{color:var(--color-text-faint);font-size:var(--text-sm);line-height:16px}.post-header h1{font-size:var(--text-display);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;text-wrap:balance;line-height:40px}.post-header p{color:var(--color-text-muted);font-size:var(--text-lg);line-height:var(--leading-relaxed)}.prose-skeleton{flex-direction:column;gap:12px;width:min(760px,100%);animation:.24s ease-out .45s both prose-in;display:flex}.prose-skeleton i{border-radius:var(--radius-xs);background:var(--color-bg-raised);height:16px;animation:1.4s ease-in-out infinite alternate pending}.md.arriving{animation:.28s cubic-bezier(.23,1,.32,1) both prose-in}@keyframes prose-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.md.arriving{animation-name:fade-in}}@keyframes fade-in{0%{opacity:0}}.more-doc{flex-direction:column;width:min(760px,100%);min-width:0;padding-top:8px;display:flex}.more-lede{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);letter-spacing:-.01em;padding-bottom:32px;line-height:34px}.more-section{border-top:1px solid var(--color-line-subtle);align-items:flex-start;gap:24px;padding-block:20px;display:flex}.more-name{width:168px;color:var(--color-text-muted);font-size:var(--text-base);font-weight:var(--font-weight-regular);flex-shrink:0;line-height:24px}.more-body,.more-specs,.more-games,.more-learning{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.more-specs,.more-games{gap:4px}.more-specs>div{gap:16px;display:flex}.more-specs dt{width:120px;color:var(--color-text-faint);font-size:var(--text-base);flex-shrink:0;padding-top:2px;line-height:22px}.more-specs dd{min-width:0;font-size:var(--text-lg);line-height:24px}.more-games{font-size:var(--text-lg);line-height:24px}.more-games .faint{font-size:var(--text-base)}.more-body{gap:6px}.more-count{font-size:var(--text-lg);gap:8px;line-height:24px;display:flex}.more-note{color:var(--color-text-muted);font-size:var(--text-base);line-height:20px}.more-learning{gap:18px}.more-learning li{flex-direction:column;gap:4px;display:flex}.more-item{font-size:var(--text-lg);align-items:baseline;gap:10px;line-height:24px;display:flex}.more-item s{color:var(--color-text-faint);text-decoration-thickness:1px}.more-status{color:var(--color-text-muted);font-size:var(--text-base);line-height:20px}.more-learning .paused .more-note{color:var(--color-text-faint)}@media (width<=767px){.window-layer{z-index:40}.window{border-radius:0;width:100%;max-width:none;inset:0}.window-bar,.window-bar.section-bar{height:calc(40px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.window-close svg{width:14px;height:14px}.window-scroll{padding:24px var(--inset) calc(48px + env(safe-area-inset-bottom,0px))}.prose-column{gap:14px}.post-header{gap:12px;padding-bottom:22px}.more-doc{padding-top:4px}.more-lede{font-size:var(--text-xl);padding-bottom:24px;line-height:28px}.more-section{flex-direction:column;gap:10px}.more-name{width:auto;font-size:var(--text-sm);line-height:16px}.more-body,.more-specs,.more-games,.more-learning{flex:none;width:100%}.post-header h1{font-size:26px;line-height:32px}.post-header p{font-size:var(--text-base);line-height:21px}}.md{min-width:0;font-size:var(--text-lg);line-height:var(--leading-relaxed);flex-direction:column;gap:16px;display:flex}.md>*{min-width:0}.md h1{border-bottom:1px solid var(--color-line-subtle);font-size:var(--text-display);font-weight:var(--font-weight-semibold);letter-spacing:-.03em;padding-bottom:10px;line-height:40px}.md h2{border-bottom:1px solid var(--color-line-subtle);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;padding:16px 0 8px;line-height:30px}.readme h2{padding-top:12px}.md h3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);padding-top:4px;line-height:26px}.md h4,.md h5,.md h6{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);padding-top:8px;line-height:22px}.md :is(h1,h2,h3,h4){scroll-margin-top:24px}.md strong{font-weight:var(--font-weight-semibold)}.md a{color:var(--color-value);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--color-value), transparent 60%);text-decoration-color:color-mix(in oklab, var(--color-value), transparent 60%);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .15s}@media (hover:hover) and (pointer:fine){.md a:hover{-webkit-text-decoration-color:var(--color-value);text-decoration-color:var(--color-value)}}.md a.pill{color:var(--color-text);text-decoration:none}.md ul,.md ol{flex-direction:column;gap:8px;display:flex}.md li{padding-left:28px;position:relative}.md ul>li:before{content:"–";color:var(--color-text-faint);position:absolute;left:4px}.md ol{counter-reset:item}.md ol>li{counter-increment:item}.md ol>li:before{content:counter(item) ".";color:var(--color-text-faint);position:absolute;left:0}.md li>ul,.md li>ol{padding-top:8px}.md li>ul>li:before{content:"·"}.md .md-measure{color:var(--project,inherit);font-variant-numeric:tabular-nums;white-space:nowrap}.md code{border:1px solid var(--color-line-subtle);border-radius:var(--radius-xs);background:var(--color-bg-display);color:var(--color-value);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 5px;font-size:14px;line-height:20px}.md-code{border:1px solid var(--color-line-subtle);border-radius:var(--radius-xs);background:var(--color-bg-display);flex-direction:column;display:flex;overflow:clip}.md-code-bar{border-bottom:1px solid var(--color-line-subtle);height:26px;color:var(--color-text-faint);font-size:var(--text-xs);flex-shrink:0;align-items:center;padding-inline:12px;line-height:14px;display:flex}.md pre{tab-size:2;scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent;padding:16px;font-size:14px;line-height:22px;overflow-x:auto}.md pre code{color:var(--color-text);font-size:inherit;line-height:inherit;background:0 0;border:0;padding:0}.md blockquote{border-left:2px solid var(--color-line-strong);color:var(--color-text-muted);flex-direction:column;gap:8px;padding-left:16px;display:flex}.md hr{background:var(--color-line-subtle);border:0;height:1px}.md img{border-radius:var(--radius-xs);max-width:100%;height:auto}.md p:has(>img){flex-wrap:wrap;gap:8px;display:flex}.md-video video{aspect-ratio:16/9;border:1px solid var(--color-line-subtle);border-radius:var(--radius-xs);background:var(--color-bg-display);width:100%}.md-table{overflow-x:auto}.md table{border-collapse:collapse;font-size:var(--text-base);line-height:20px}.md th,.md td{border:1px solid var(--color-line-subtle);text-align:left;vertical-align:top;padding:6px 10px}.md th{font-weight:var(--font-weight-semibold)}@media (width<=767px){.md{font-size:var(--text-base);gap:14px;line-height:21px}.md h1{font-size:26px;line-height:32px}.md h2{font-size:var(--text-xl);padding-top:10px;line-height:26px}.md h3{font-size:var(--text-lg);line-height:22px}.md h4{padding-top:4px}.md li{padding-left:22px}.md ul>li:before{left:2px}.md code{font-size:var(--text-sm);line-height:19px}.md-code-bar{height:24px;padding-inline:10px}.md pre{font-size:var(--text-sm);padding:12px;line-height:19px}}:root:not([data-keys]) :focus-visible{outline:none}:where([data-keys]) :focus-visible{outline:1px solid var(--color-text);outline-offset:2px}.contact,.post-row,.project-bar,.window-close,.toc-items a,.toc-head,.toc-group.closed>span,.link,.resume-link,.window-action,.md a,.more-bar,.role-name a{position:relative}:where([data-keys]) :is(.contact,.post-row,.project-bar,.window-close,.toc-items a,.toc-head,.toc-group.closed,.link,.resume-link,.window-action,.md a,.more-bar,.role-name a):focus-visible{outline:none}:where([data-keys]) :is(.contact,.post-row,.project-bar,.window-close,.toc-items a,.toc-head,.link,.resume-link,.window-action,.md a,.more-bar,.role-name a):focus-visible:after,:where([data-keys]) .toc-group.closed:focus-visible>span:after{content:"";inset:var(--ring,-2px -4px);border:1px solid var(--ring-color,var(--color-text));border-radius:var(--radius-sm);pointer-events:none;position:absolute}.link,.resume-link,.window-action,.md a,.role-name a{--ring:-2px -4px}.contact{--ring:0 -4px}.post-row{--ring:10px -10px}.project-bar{--ring:3px;--ring-color:var(--color-text-on-color)}.more-bar,.window-close{--ring:3px}.window-bar.on-color :is(.window-close,.window-action){--ring-color:var(--color-text-on-color)}.toc-items a,.toc-head{width:fit-content;max-width:100%}.toc-items a{--ring:0 -4px 0 18px}.toc-head{--ring:2px -4px 2px 10px}.toc-group.closed>span{--ring:-4px -4px}@media (width<=767px){.contact{--ring:7px -4px}.post-row{--ring:8px -10px}}
