:root{--ground: #f4f5f7;--surface: #ffffff;--ink: #111827;--ink-muted: #4b5563;--ink-subtle: #5f6875;--line: #d5d9e0;--bar-idle: #c3c8d0;--night: #111827;--on-night: #f9fafb;--on-night-muted: #9ca3af;--green: #10b981;--blue: #3b82f6;--orange: #f97316;--green-text: #047857;--blue-text: #1d4ed8;--orange-text: #c2410c;--violet: #8b5cf6;--violet-text: #6d28d9;--yellow: #eab308;--yellow-text: #a16207;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-sans: "IBM Plex Sans", system-ui, sans-serif;--display-size: 60px;--display-line: 1;--display-weight: 500;--display-tracking: -1px;--h1-size: 40px;--h1-line: 1.1;--h1-weight: 500;--h1-tracking: -1px;--h2-size: 28px;--h2-line: 1.2;--h2-weight: 500;--h3-size: 20px;--h3-line: 1.3;--h3-weight: 500;--body-size: 17px;--body-line: 1.6;--body-weight: 400;--small-size: 15px;--small-line: 1.5;--small-weight: 400;--command-size: 15px;--command-line: 1.3;--command-weight: 400;--label-size: 13px;--label-line: 1.3;--label-weight: 500;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-18: 72px;--space-30: 120px;--radius-none: 0px;--bar-height: .2em;--bar-width: .6em;--bar-width-tri: .93em;--bar-gap: .08em;--bar-drop: -.12em;--dot-size: 4px;--dot-pitch: 48px;--dot-travel: 24px;--dot-shift: 10px;--dot-reach: 96px;--page-max: 1120px;--prompt-col: 25%;--measure: 68ch}:root{--accent: var(--ink);--accent-text: var(--ink);--gutter: var(--space-18);--section-gap: var(--space-30)}@media(max-width:767px){:root{--gutter: var(--space-4);--section-gap: var(--space-18)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-sans);font-size:var(--body-size);line-height:var(--body-line);font-weight:var(--body-weight);text-align:left}h1,h2,h3,p,ul,ol,figure,pre{margin:0}ul{padding:0;list-style:none}img,video{display:block;max-width:100%;height:auto;border-radius:var(--radius-none)}a{color:var(--accent-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}a:hover,a:focus-visible{text-decoration-thickness:.2em}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:var(--gutter);top:calc(-1 * var(--space-18));padding:var(--space-2) var(--space-4);background:var(--night);color:var(--on-night);font-family:var(--font-mono);font-size:var(--command-size)}.skip:focus{top:var(--space-2)}.wrap{max-width:var(--page-max);margin-left:var(--gutter);margin-right:var(--gutter)}.mark{font-family:var(--font-mono);font-weight:500;white-space:nowrap}.bar{display:inline-block;width:var(--bar-width);height:var(--bar-height);margin-left:var(--bar-gap);vertical-align:var(--bar-drop);background:var(--accent)}.bar-tri{display:inline-flex;width:var(--bar-width-tri);background:none}.bar-tri i{flex:1}.bar-tri i:nth-child(1){background:var(--green)}.bar-tri i:nth-child(2){background:var(--blue)}.bar-tri i:nth-child(3){background:var(--orange)}.display{font-family:var(--font-mono);font-size:var(--display-size);line-height:var(--display-line);font-weight:var(--display-weight);letter-spacing:var(--display-tracking)}.h1{font-family:var(--font-mono);font-size:var(--h1-size);line-height:var(--h1-line);font-weight:var(--h1-weight);letter-spacing:var(--h1-tracking)}.h2{font-family:var(--font-mono);font-size:var(--h2-size);line-height:var(--h2-line);font-weight:var(--h2-weight)}.command{font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line);font-weight:var(--command-weight)}.label{font-family:var(--font-mono);font-size:var(--label-size);line-height:var(--label-line);font-weight:var(--label-weight);color:var(--ink-subtle);text-transform:lowercase}.small{font-size:var(--small-size);line-height:var(--small-line);color:var(--ink-subtle)}.topbar{border-bottom:1px solid var(--line)}.topbar-inner{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-6);padding:var(--space-6) 0}.topbar-mark{color:var(--ink);font-size:var(--h3-size);line-height:var(--h3-line);text-decoration:none}.nav{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line)}.nav a{color:var(--ink);text-decoration:none}.nav a:hover,.nav a:focus-visible,.nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:.2em}.nav a[aria-current=page]:not(:hover){text-decoration-thickness:1px}.crumbs{padding-top:var(--space-4);font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line);color:var(--ink-muted)}.crumbs a{color:var(--ink-muted)}.crumbs [aria-current]{color:var(--ink)}.opening{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-12) var(--space-12);padding-top:var(--space-18)}.opening-text{flex:0 1 auto;max-width:var(--measure)}.opening-text>*+*{margin-top:var(--space-3)}.byline{color:var(--ink-muted)}.opening .label{margin-top:var(--space-4)}@media(max-width:767px){.opening{padding-top:var(--space-12);gap:var(--space-8)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.home-mark .bar-tri{animation:blink 1.1s steps(1) infinite}.dots-slot{flex:1 1 0;min-width:min(100%,calc(4 * var(--dot-pitch)));display:flex;justify-content:flex-end}.dots-slot[data-from=left]{justify-content:flex-start}@media(max-width:767px){.dots-slot{flex-basis:100%;justify-content:flex-start}}.dotgrid{display:grid;width:max-content;grid-auto-rows:var(--dot-pitch);touch-action:pan-y}.dot{width:var(--dot-size);height:var(--dot-size);background:var(--ink);place-self:center;transition:transform .42s cubic-bezier(.2,.7,.2,1)}.section{display:grid;grid-template-columns:var(--prompt-col) minmax(0,1fr);align-items:baseline;column-gap:var(--space-6);margin-top:var(--section-gap)}.prompt{font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line);color:var(--ink-muted)}.prompt a{color:inherit}.section-top{align-items:start}@media(max-width:767px){.section{grid-template-columns:minmax(0,1fr);row-gap:var(--space-2)}}.output>*+*{margin-top:var(--space-8)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-4)}.rows{border-top:1px solid var(--line);--name-w: 14ch}.rows>li{border-bottom:1px solid var(--line)}.row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-6);padding:var(--space-4) 0;color:inherit;text-decoration:none}.row-name{flex:0 0 var(--name-w);font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line);font-weight:500;white-space:nowrap}.row-desc{flex:1 1 220px;min-width:0}.row-meta{font-family:var(--font-mono);font-size:var(--label-size);line-height:var(--label-line);font-weight:var(--label-weight);color:var(--ink-subtle);white-space:nowrap}@media(max-width:767px){.row-desc{flex-basis:100%}}a.row:hover .row-desc,a.row:focus-visible .row-desc{text-decoration:underline;text-decoration-thickness:.12em;text-underline-offset:.2em}a.row:focus-visible{outline-offset:-2px}.row-link{--bar-under: .32em}.row-link .bar{transition:width .12s steps(4),margin-left .12s steps(4),transform .12s steps(1,end)}.row-link:hover .bar,.row-link:focus-visible .bar{width:calc(var(--n) * 1ch + var(--bar-gap) + var(--bar-width));margin-left:calc(var(--n) * -1ch);transform:translateY(var(--bar-under));transition:width .12s steps(4),margin-left .12s steps(4),transform .12s steps(1,start)}.intro [data-type]:not(.typing){visibility:hidden}.intro [data-reveal]>li:not(.on){visibility:hidden}.list>li{padding:var(--space-3) 0;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line)}.list{border-top:1px solid var(--line)}@media(min-width:768px){.list-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));column-gap:var(--space-6)}}.shots{display:grid;gap:var(--space-8) var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.shot-wide{grid-column:1 / -1}.shots img{max-width:100%}.shots img,.shots video{border:1px solid var(--line);background:var(--surface)}.workflow figcaption,.shots figcaption{margin-top:var(--space-2);font-size:var(--small-size);line-height:var(--small-line);color:var(--ink-subtle)}.workflow{max-width:100%}.wf{display:block;width:100%;height:auto;color:var(--ink-muted)}.wf-tall{display:none;max-width:420px}@media(max-width:767px){.wf-wide{display:none}.wf-tall{display:block}}.wf-box{fill:var(--surface);stroke:var(--line)}.wf-frame{fill:none;stroke:var(--line)}.wf-name{font-family:var(--font-mono);font-size:13px;font-weight:500;fill:var(--ink)}.wf-sub{font-family:var(--font-sans);font-size:12px;fill:var(--ink-muted)}.wf-head,.wf-label{font-family:var(--font-mono);font-size:12px}.wf-head{font-weight:500;fill:var(--ink-subtle)}.wf-label{fill:var(--ink-muted)}.wf-edge{fill:none;stroke:currentColor;stroke-width:1.25}.wf-return{stroke-dasharray:4 3}.code{padding:var(--space-6) var(--space-8);background:var(--night);color:var(--on-night);font-family:var(--font-mono);font-size:var(--command-size);line-height:1.6;overflow-x:auto}.code .muted{color:var(--on-night-muted)}@media(max-width:767px){.code{padding:var(--space-4)}}.side-blocks{display:none}@media(min-width:1600px){.side-blocks{display:block;position:fixed;top:0;right:0;bottom:0;left:calc(var(--gutter) + var(--page-max) + var(--space-18));pointer-events:none}}.sb{pointer-events:auto;transition:translate .42s cubic-bezier(.2,.7,.2,1)}.sb.nudge{translate:calc(-1 * var(--dot-travel)) 0}.sb-night{position:absolute;top:calc(3.5 * var(--space-12));right:0;width:min(50%,calc(6 * var(--space-12)));height:calc(2 * var(--space-12));background:var(--night)}.sb-strip{position:absolute;top:calc(6.5 * var(--space-12));right:0;display:flex;width:min(100%,calc(12 * var(--space-12)));height:calc(2 * var(--space-12))}.sb-band:nth-child(1){flex:5}.sb-band:nth-child(2){flex:3}.sb-band:nth-child(3){flex:2}.footer{position:relative;z-index:1;margin-top:var(--section-gap);background:var(--night);color:var(--on-night)}.footer-inner{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4) var(--space-8);padding:var(--space-12) 0;font-family:var(--font-mono);font-size:var(--command-size);line-height:var(--command-line)}.footer .mark{font-size:var(--h3-size)}.footer a{color:var(--on-night)}.footer-year{color:var(--on-night-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.code-line{display:block}
