.page-hidden.svelte-z24vjt{opacity:0;transform:translateY(30px)}.project-list.svelte-z24vjt{border-top:1px solid rgba(0,0,0,.06)}.project-row.svelte-z24vjt{display:grid;grid-template-columns:80px 1fr 200px;align-items:center;padding:56px 0;border-bottom:1px solid rgba(0,0,0,.06);position:relative;text-decoration:none;color:inherit;overflow:hidden;transition:padding .5s cubic-bezier(.83,0,.17,1),border-color .5s cubic-bezier(.83,0,.17,1);opacity:0;transform:translateY(40px) scale(.98);filter:blur(4px);transition:padding .5s cubic-bezier(.83,0,.17,1),border-color .5s cubic-bezier(.83,0,.17,1),opacity .9s cubic-bezier(.83,0,.17,1),transform .9s cubic-bezier(.83,0,.17,1),filter .9s cubic-bezier(.83,0,.17,1)}.project-row.active.svelte-z24vjt{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.project-row.svelte-z24vjt:hover{padding-left:40px;padding-right:40px;border-bottom-color:#10b981}.row-reveal-bg.svelte-z24vjt{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,185,129,.04) 0%,transparent 100%);transform:translate(-100%);transition:transform .6s cubic-bezier(.83,0,.17,1);z-index:0;pointer-events:none}.project-row.svelte-z24vjt:hover .row-reveal-bg:where(.svelte-z24vjt){transform:translate(0)}.row-number.svelte-z24vjt{font-size:1rem;font-weight:800;color:#171717;opacity:.2;position:relative;z-index:1;transition:opacity .4s ease,color .4s ease}.project-row.svelte-z24vjt:hover .row-number:where(.svelte-z24vjt){opacity:1;color:#10b981}.row-main.svelte-z24vjt{position:relative;z-index:1}.row-main.svelte-z24vjt h3:where(.svelte-z24vjt){font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;letter-spacing:-.04em;color:#171717;margin-bottom:8px;transition:transform .4s ease}.project-row.svelte-z24vjt:hover .row-main:where(.svelte-z24vjt) h3:where(.svelte-z24vjt){transform:translate(10px)}.row-main.svelte-z24vjt p:where(.svelte-z24vjt){font-size:1.05rem;color:#737373;max-width:560px;line-height:1.6;transition:transform .4s ease,color .4s ease}.project-row.svelte-z24vjt:hover .row-main:where(.svelte-z24vjt) p:where(.svelte-z24vjt){transform:translate(15px);color:#404040}.row-meta.svelte-z24vjt{display:flex;flex-direction:column;align-items:flex-end;gap:16px;position:relative;z-index:1}.row-meta-top.svelte-z24vjt{display:flex;align-items:center;gap:10px}.language-tag.svelte-z24vjt{font-size:.75rem;font-weight:700;padding:6px 12px;background:#f4f4f5;border-radius:8px;color:#52525b}.language-tag.python.svelte-z24vjt{color:#3776ab}.language-tag.js.svelte-z24vjt{color:#d97706}.language-tag.ts.svelte-z24vjt{color:#2563eb}.language-tag.shell.svelte-z24vjt{color:#059669}.language-tag.swift.svelte-z24vjt{color:#f43f5e}.star-badge.svelte-z24vjt{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;color:#d97706}.btn-row.svelte-z24vjt{width:56px;height:56px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:#fff;display:flex;align-items:center;justify-content:center;color:#171717;transition:background .4s cubic-bezier(.83,0,.17,1),color .4s cubic-bezier(.83,0,.17,1),border-color .4s cubic-bezier(.83,0,.17,1),transform .4s cubic-bezier(.83,0,.17,1)}.project-row.svelte-z24vjt:hover .btn-row:where(.svelte-z24vjt){background:#171717;color:#fff;border-color:#171717;transform:rotate(360deg)}.github-cta.svelte-z24vjt{margin-top:64px;text-align:center}.github-cta.svelte-z24vjt a:where(.svelte-z24vjt){display:inline-flex;align-items:center;gap:10px;background:#171717;color:#fff;padding:14px 32px;border-radius:99px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .3s ease}.github-cta.svelte-z24vjt a:where(.svelte-z24vjt):hover{background:#404040}@media(max-width:768px){.project-row.svelte-z24vjt{grid-template-columns:1fr;padding:40px 0;gap:16px}.project-row.svelte-z24vjt:hover{padding-left:0;padding-right:0}.project-row.svelte-z24vjt:hover .row-main:where(.svelte-z24vjt) h3:where(.svelte-z24vjt){transform:none}.project-row.svelte-z24vjt:hover .row-main:where(.svelte-z24vjt) p:where(.svelte-z24vjt){transform:none}.row-number.svelte-z24vjt{font-size:.8rem;margin-bottom:-8px}.row-main.svelte-z24vjt h3:where(.svelte-z24vjt){font-size:1.75rem}.row-main.svelte-z24vjt p:where(.svelte-z24vjt){font-size:1rem;max-width:100%}.row-meta.svelte-z24vjt{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.btn-row.svelte-z24vjt{width:48px;height:48px}}@media(max-width:480px){.row-main.svelte-z24vjt h3:where(.svelte-z24vjt){font-size:1.5rem}}
