.rail-wrap[data-astro-cid-ehwc63uh]{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);&:has(.pill:hover) .rail__track[data-astro-cid-ehwc63uh]{animation-play-state:paused}}.rail[data-astro-cid-ehwc63uh]{width:max-content;display:flex}.rail__track[data-astro-cid-ehwc63uh]{will-change:transform;flex-shrink:0;align-items:center;padding-right:16px;animation:48s linear infinite marquee;display:flex}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}.pill[data-astro-cid-ehwc63uh]{border-radius:var(--radius-full);background:var(--color-surface-2);border:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:8px;margin-right:16px;padding:8px 16px 8px 8px;display:inline-flex}.pill__mark[data-astro-cid-ehwc63uh]{border-radius:var(--radius-full);background:var(--color-primary-soft);width:24px;height:24px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;transition:filter .2s;display:inline-flex}.pill__mark[data-astro-cid-ehwc63uh] svg[data-astro-cid-ehwc63uh]{stroke-width:2px;width:13px;height:13px}.pill__text[data-astro-cid-ehwc63uh]{color:var(--color-text-muted);white-space:nowrap;font-size:13px;line-height:22px;transition:color .2s}.pill[data-astro-cid-ehwc63uh]:hover .pill__mark[data-astro-cid-ehwc63uh]{filter:blur(3px)}.pill[data-astro-cid-ehwc63uh]:hover .pill__text[data-astro-cid-ehwc63uh]{color:var(--color-primary)}@media (prefers-reduced-motion:reduce){.rail__track[data-astro-cid-ehwc63uh]{animation:none}}.wave-band[data-astro-cid-pyhdqzcg]{width:100%;height:var(--band-h,84px);display:block;-webkit-mask-image:linear-gradient(90deg,#000 70%,#0000 100%);mask-image:linear-gradient(90deg,#000 70%,#0000 100%)}.proj-card--cover[data-astro-cid-oxzxigu2]{border:1px solid color-mix(in srgb, var(--color-border) 45%, transparent);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text);background:0 0;flex-direction:column;align-items:stretch;padding:0;transition:transform .18s cubic-bezier(.2,.7,.2,1),border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.proj-card--cover[data-astro-cid-oxzxigu2]:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-3px)}.proj-card--cover[data-astro-cid-oxzxigu2]:before{content:"";border-radius:inherit;background:radial-gradient(160px circle at calc(var(--card-px,50) * 1%) calc(var(--card-py,50) * 1%), color-mix(in srgb, var(--color-primary) 18%, transparent), transparent 70%);opacity:0;pointer-events:none;z-index:1;transition:opacity .3s;position:absolute;inset:0}.proj-card--cover[data-astro-cid-oxzxigu2]:hover:before{opacity:1}.proj-card--cover[data-astro-cid-oxzxigu2] .proj-card__cover[data-astro-cid-oxzxigu2],.proj-card--cover[data-astro-cid-oxzxigu2] .proj-card__text[data-astro-cid-oxzxigu2]{z-index:2;position:relative}.proj-card__cover[data-astro-cid-oxzxigu2]{aspect-ratio:16/9;background:linear-gradient(135deg, var(--color-surface-2), var(--color-surface));width:100%;display:block;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 0% 70%,#0000);mask-image:linear-gradient(#0000,#000 0% 70%,#0000)}.proj-card--nocover[data-astro-cid-oxzxigu2] .proj-card__cover[data-astro-cid-oxzxigu2]{aspect-ratio:auto;background:linear-gradient(135deg, var(--color-primary-soft), transparent 62%), linear-gradient(135deg, var(--color-surface-2), var(--color-surface));height:72px}.proj-card--wave[data-astro-cid-oxzxigu2] .proj-card__cover[data-astro-cid-oxzxigu2]{background:0 0;height:auto;-webkit-mask-image:none;mask-image:none}.proj-card--cover[data-astro-cid-oxzxigu2]:only-child{flex-direction:row;align-items:stretch}.proj-card--cover[data-astro-cid-oxzxigu2]:only-child .proj-card__cover[data-astro-cid-oxzxigu2]{flex-shrink:0;width:200px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 100%);mask-image:linear-gradient(90deg,#0000,#000 18% 100%)}.proj-card--cover[data-astro-cid-oxzxigu2]:only-child .proj-card__text[data-astro-cid-oxzxigu2]{justify-content:flex-start}.proj-card--wave[data-astro-cid-oxzxigu2]:only-child{flex-direction:column}.proj-card--wave[data-astro-cid-oxzxigu2]:only-child .proj-card__cover[data-astro-cid-oxzxigu2]{width:100%;-webkit-mask-image:none;mask-image:none}.proj-card__cover[data-astro-cid-oxzxigu2] img[data-astro-cid-oxzxigu2]{object-fit:cover;filter:brightness(.85);width:100%;height:100%;transition:filter .3s,transform .4s cubic-bezier(.2,.7,.2,1)}[data-astro-cid-oxzxigu2][data-theme=dark] .proj-card__cover[data-astro-cid-oxzxigu2] img[data-astro-cid-oxzxigu2]{filter:brightness(.6)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .proj-card__cover[data-astro-cid-oxzxigu2] img[data-astro-cid-oxzxigu2]{filter:brightness(.6)}}.proj-card--cover[data-astro-cid-oxzxigu2]:hover .proj-card__cover[data-astro-cid-oxzxigu2] img[data-astro-cid-oxzxigu2]{filter:brightness();transform:translateY(-16px)}.proj-card__text[data-astro-cid-oxzxigu2]{align-items:flex-start;gap:var(--space-2);min-width:0;min-height:0;padding:var(--space-5) var(--space-6) var(--space-6);flex-direction:column;flex:1;display:flex}.proj-card--cover[data-astro-cid-oxzxigu2]:hover .proj-card__text[data-astro-cid-oxzxigu2]{-webkit-mask-image:radial-gradient(150px circle at calc(var(--card-px,50) * 1%) calc(var(--card-py,50) * 1%), #0000001f 0%, #00000061 42%, #000 74%);mask-image:radial-gradient(150px circle at calc(var(--card-px,50) * 1%) calc(var(--card-py,50) * 1%), #0000001f 0%, #00000061 42%, #000 74%)}.proj-card__title-area[data-astro-cid-oxzxigu2]{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;display:flex}.proj-card__title[data-astro-cid-oxzxigu2]{font-size:var(--fs-lg);letter-spacing:var(--track-tight);align-items:center;gap:6px;font-weight:700;transition:color .18s;display:flex}.proj-card--cover[data-astro-cid-oxzxigu2]:hover .proj-card__title[data-astro-cid-oxzxigu2]{color:var(--color-primary)}.proj-card__desc[data-astro-cid-oxzxigu2]{-webkit-line-clamp:3;line-clamp:3;width:100%;font-size:var(--fs-sm);color:var(--color-text-muted);-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.proj-card__meta[data-astro-cid-oxzxigu2]{width:100%;padding-top:var(--space-2);white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-faint);margin-top:auto;overflow:hidden}.proj-card__badge[data-astro-cid-oxzxigu2]{border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;border:1px solid #0000;flex-shrink:0;padding:3px 9px}@media (width<=640px){.proj-card--cover[data-astro-cid-oxzxigu2]:only-child{flex-direction:column}.proj-card--cover[data-astro-cid-oxzxigu2]:only-child .proj-card__cover[data-astro-cid-oxzxigu2]{width:100%;-webkit-mask-image:linear-gradient(#0000,#000 0% 70%,#0000);mask-image:linear-gradient(#0000,#000 0% 70%,#0000)}.proj-card__title-area[data-astro-cid-oxzxigu2]{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.proj-card--cover[data-astro-cid-oxzxigu2]:before{display:none}}.work[data-astro-cid-nntkhrjw]{--page-w:1100px;max-width:var(--page-w);padding-block:var(--space-10) var(--space-20)}.work__lead[data-astro-cid-nntkhrjw]{max-width:var(--measure);margin-top:var(--space-6);color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.7}.work__group[data-astro-cid-nntkhrjw]{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.work__group--pinned[data-astro-cid-nntkhrjw]{margin-top:var(--space-8)}.work__group--first[data-astro-cid-nntkhrjw]{margin-top:var(--space-16)}.work__divider[data-astro-cid-nntkhrjw]{margin-block:var(--space-6)}.work__empty[data-astro-cid-nntkhrjw]{padding-block:var(--space-10);color:var(--color-text-faint);font-size:var(--fs-sm)}@media (width<=640px){.work__group[data-astro-cid-nntkhrjw],.work__group--pinned[data-astro-cid-nntkhrjw]{grid-template-columns:1fr}}
