.section-header[data-astro-cid-pb4nux2a]{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}h2[data-astro-cid-pb4nux2a]{font-weight:var(--weight-semibold)}.project-grid[data-astro-cid-pf5okai3]{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));display:grid}li[data-astro-cid-pf5okai3]{display:grid}.project[data-astro-cid-pf5okai3]{--sq-r:var(--radius-4);--sq-bg:var(--color-bg);gap:var(--space-3);padding:var(--space-4);transition:--sq-bg var(--duration-fast) var(--ease-out), --sq-border var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);grid-template-rows:auto 1fr auto;display:grid}.project[data-astro-cid-pf5okai3]:hover,.project[data-astro-cid-pf5okai3]:focus-visible{--sq-bg:var(--color-surface);--sq-border:var(--color-line-strong)}.project[data-astro-cid-pf5okai3]:active{transform:scale(.99)}.project[data-astro-cid-pf5okai3] .kubai-icon{color:var(--color-accent)}.text[data-astro-cid-pf5okai3]{gap:var(--space-1);align-content:start;display:grid}.name[data-astro-cid-pf5okai3]{font-weight:var(--weight-medium)}.description[data-astro-cid-pf5okai3]{-webkit-line-clamp:3;line-clamp:3;color:var(--color-fg-muted);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tags[data-astro-cid-pf5okai3]{gap:var(--space-1);flex-wrap:wrap;display:flex}.tag[data-astro-cid-pf5okai3]{--sq-r:6px;color:var(--color-fg-muted);background-color:var(--color-surface-2);padding:2px 6px;font-size:11px;line-height:16px}.link-grid[data-astro-cid-jvoiu3mv]{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));display:grid}li[data-astro-cid-jvoiu3mv]{position:relative}li[data-astro-cid-jvoiu3mv]:hover,li[data-astro-cid-jvoiu3mv]:focus-within{z-index:2}.link-item[data-astro-cid-jvoiu3mv]{text-align:start;isolation:isolate;width:100%;filter:var(--shadow-rest);transition:filter var(--duration-base) var(--ease-out);text-decoration:none;display:block;position:relative}.card[data-astro-cid-jvoiu3mv]{--card-radius:var(--radius-4);--card-padding:var(--space-2);--sq-r:var(--card-radius);--sq-bg:var(--color-bg);z-index:1;align-items:center;gap:var(--space-3);padding:var(--card-padding);padding-right:var(--space-4);transition:transform var(--duration-base) var(--ease-out), --sq-border var(--duration-fast) var(--ease-out);display:flex;position:relative;overflow:hidden}.card[data-astro-cid-jvoiu3mv]:after{content:"";z-index:-1;background-image:linear-gradient(var(--raised-top), var(--raised-bottom));box-shadow:inset 0 1px 0 var(--raised-highlight), inset 0 -1px 0 var(--raised-edge);opacity:0;transition:opacity var(--duration-base) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);pointer-events:none;position:absolute;inset:0}.key[data-astro-cid-jvoiu3mv]{width:var(--control-lg);height:var(--control-lg);transition:transform var(--duration-fast) var(--ease-out);flex-shrink:0;place-items:center;display:grid}.key[data-astro-cid-jvoiu3mv] .kubai-icon{color:var(--color-accent)}.text[data-astro-cid-jvoiu3mv]{min-width:0;display:grid}.label[data-astro-cid-jvoiu3mv]{font-weight:var(--weight-medium)}.detail[data-astro-cid-jvoiu3mv]{text-overflow:ellipsis;white-space:nowrap;color:var(--color-fg-subtle);overflow:hidden}.tray[data-astro-cid-jvoiu3mv]{--sq-r:var(--radius-3);left:var(--space-3);right:var(--space-3);top:calc(100% - var(--space-4));z-index:0;align-items:center;gap:var(--space-2);height:calc(var(--space-4) + 28px);padding:var(--space-4) var(--space-3) 0;background-color:var(--tray-bg);box-shadow:inset 0 10px 8px -6px #000c, inset 0 0 0 1px var(--tray-edge);opacity:0;transition:transform var(--duration-base) var(--ease-out), opacity var(--duration-fast) var(--ease-out);display:flex;position:absolute;transform:translateY(-32px)}.led[data-astro-cid-jvoiu3mv]{background-color:var(--tray-muted);width:6px;height:6px;transition:background-color var(--duration-base) var(--ease-out) .16s, box-shadow var(--duration-base) var(--ease-out) .16s;border-radius:50%;flex-shrink:0}.url[data-astro-cid-jvoiu3mv]{font-size:var(--text-caption);line-height:var(--leading-caption);letter-spacing:.02em;color:var(--tray-fg);white-space:nowrap;text-overflow:ellipsis;clip-path:inset(0 100% 0 0);transition:clip-path;overflow:hidden}.link-item[data-astro-cid-jvoiu3mv]:hover,.link-item[data-astro-cid-jvoiu3mv]:focus-visible{filter:var(--shadow-lift)}.link-item[data-astro-cid-jvoiu3mv]:hover .card[data-astro-cid-jvoiu3mv],.link-item[data-astro-cid-jvoiu3mv]:focus-visible .card[data-astro-cid-jvoiu3mv]{--sq-border:var(--color-line-strong);transform:translateY(-2px)}.link-item[data-astro-cid-jvoiu3mv]:hover .card[data-astro-cid-jvoiu3mv]:after,.link-item[data-astro-cid-jvoiu3mv]:focus-visible .card[data-astro-cid-jvoiu3mv]:after{opacity:1}.link-item[data-astro-cid-jvoiu3mv]:hover .tray[data-astro-cid-jvoiu3mv],.link-item[data-astro-cid-jvoiu3mv]:focus-visible .tray[data-astro-cid-jvoiu3mv]{opacity:1;transition:transform .42s cubic-bezier(.34,1.4,.64,1),opacity;transform:translateY(0)}.link-item[data-astro-cid-jvoiu3mv]:hover .led[data-astro-cid-jvoiu3mv],.link-item[data-astro-cid-jvoiu3mv]:focus-visible .led[data-astro-cid-jvoiu3mv]{background-color:var(--color-accent);box-shadow:0 0 6px var(--color-accent)}.link-item[data-astro-cid-jvoiu3mv]:hover .url[data-astro-cid-jvoiu3mv],.link-item[data-astro-cid-jvoiu3mv]:focus-visible .url[data-astro-cid-jvoiu3mv]{clip-path:inset(0);transition:clip-path .48s steps(20,end) .14s}.link-item[data-astro-cid-jvoiu3mv]:active .card[data-astro-cid-jvoiu3mv]{transform:translateY(0)}.link-item[data-astro-cid-jvoiu3mv]:active .card[data-astro-cid-jvoiu3mv]:after{box-shadow:inset 0 2px 4px var(--raised-edge), inset 0 -1px 0 var(--raised-highlight)}.link-item[data-astro-cid-jvoiu3mv]:active .key[data-astro-cid-jvoiu3mv]{transform:translateY(1px)}.link-item[data-astro-cid-jvoiu3mv]:focus-visible{outline:none}.link-item[data-astro-cid-jvoiu3mv]:focus-visible .card[data-astro-cid-jvoiu3mv]{outline:2px solid var(--color-accent);outline-offset:2px}.ascii-stage{background-color:var(--color-surface-2);height:376px;position:relative;overflow:hidden}.ascii-canvas{width:100%;height:100%;font-family:var(--font-mono);cursor:crosshair;touch-action:pan-y}.style-picker{top:var(--space-2);right:var(--space-2);z-index:1;pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:absolute}.style-toggle{pointer-events:auto;--sq-r:var(--radius-2);--sq-bg:transparent;--sq-border:transparent;width:24px;height:24px;color:var(--color-fg-muted);opacity:.25;transition:opacity var(--duration-base) var(--ease-out), color var(--duration-fast) var(--ease-out), --sq-bg var(--duration-fast) var(--ease-out), --sq-border var(--duration-fast) var(--ease-out);place-items:center;display:grid}.style-toggle svg{fill:currentColor}.ascii-stage:hover .style-toggle{opacity:.55}.style-picker:hover .style-toggle,.style-picker[data-open] .style-toggle,.style-toggle:focus-visible{--sq-bg:color-mix(in srgb, var(--color-surface) 88%, transparent);--sq-border:var(--color-line-strong);color:var(--color-fg);opacity:1}.style-picker:before{content:"";height:var(--space-1);position:absolute;top:24px;left:0;right:0}.style-picker:hover:before,.style-picker[data-open]:before{pointer-events:auto}.style-menu{--sq-r:var(--radius-3);--sq-bg:var(--color-surface);min-width:104px;margin-top:var(--space-1);padding:calc(var(--space-1) - 1px);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-base) var(--ease-out);display:grid;transform:translateY(-4px)}.style-picker:hover .style-menu,.style-picker:has(:focus-visible) .style-menu,.style-picker[data-open] .style-menu{opacity:1;pointer-events:auto;transform:none}.style-option{--sq-r:calc(var(--radius-3) - var(--space-1));align-items:center;gap:var(--space-2);width:100%;height:28px;padding-inline:var(--space-2);font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-fg-muted);text-align:left;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:flex}.style-option:before{content:"";background-color:var(--color-accent);width:.45em;height:1em;transition:transform var(--duration-base) var(--ease-out);flex-shrink:0;transform:scaleY(0)}.style-option:hover{color:var(--color-fg);background-color:var(--color-hover)}.style-option[aria-pressed=true]{color:var(--color-fg)}.style-option[aria-pressed=true]:before{transform:none}@media (width<=767px){.ascii-stage{height:352px}}.hero[data-astro-cid-6voplrxj]{gap:var(--space-8);display:grid}.statement[data-astro-cid-6voplrxj]{font-size:var(--text-display);line-height:var(--leading-display);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);text-wrap:initial;display:grid}.sub[data-astro-cid-6voplrxj]{color:var(--color-fg-muted)}.word[data-astro-cid-6voplrxj]{color:var(--color-accent-ink)}.bio[data-astro-cid-6voplrxj]{gap:var(--space-1);font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-fg-muted);max-width:34em;display:grid}.bio[data-astro-cid-6voplrxj] p{gap:.6em;display:flex}.bio[data-astro-cid-6voplrxj] p:before{content:"";width:.5em;height:1.05em;margin-top:calc((var(--leading-body) - 1.05em) / 2);background-color:var(--color-accent);flex-shrink:0}.bio[data-astro-cid-6voplrxj] a{color:var(--color-fg);text-decoration:underline;text-decoration-color:var(--color-line-strong);text-underline-offset:3px}.section[data-astro-cid-6voplrxj]{margin-top:var(--space-16)}.empty[data-astro-cid-6voplrxj]{color:var(--color-fg-subtle)}.scramble{vertical-align:bottom;white-space:nowrap;transition:width var(--duration-slow) var(--ease-out);display:inline-block;position:relative}.scramble-sizer{visibility:hidden;pointer-events:none;position:absolute;top:0;left:0}
