:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e13;--bg-alt:#0e141b;--surface:#131a23;--ink:#e6edf3;--ink-soft:#9aa7b4;--line:#1d2833;--accent:#34d399;--accent-strong:#6ee7b7;--warn:#e3b341;--code-bg:#0f172a;--code-ink:#e2e8f0;--font-display:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--font-body:"Inter", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--nav-h:64px;--maxw:1080px;--radius:10px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fa;--bg-alt:#eef1f4;--surface:#fff;--ink:#161b22;--ink-soft:#57606a;--line:#d8dee4;--accent:#159957;--accent-strong:#126e4e;--warn:#9a6700;--code-bg:#f6f8fa;--code-ink:#24292f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.65}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0 0 .5em;line-height:1.15}a{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.section{border-top:1px solid var(--line);padding:96px 0}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);overflow-wrap:anywhere;margin:0 0 12px;font-size:13px;display:block}.section-title{margin-bottom:16px;font-size:clamp(1.6rem,3vw,2.2rem)}.lead{color:var(--ink-soft);max-width:62ch}.js .reveal{opacity:0;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);transform:translateY(20px)}.js .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transition:none;transform:none}}@media (width<=720px){.section{padding:64px 0}}.role-tech{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.tech-badge{font-family:var(--font-mono);color:var(--ink-soft);border:1px solid var(--line);border-radius:4px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.tech-badge svg{fill:currentColor;width:14px;height:14px}.tech-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.status-pill{font-family:var(--font-mono);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-size:12px;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.status-pill--pending{color:var(--warn)}.status-pill--in-development{color:var(--accent)}.status-pill--completed{color:var(--accent-strong)}.btn{font-family:var(--font-mono);border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;line-height:1;text-decoration:none;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.btn svg{fill:currentColor;flex-shrink:0;width:16px;height:16px}.btn--primary{color:var(--bg);background:var(--accent-strong);border-color:var(--accent-strong)}.btn--primary:hover{background:var(--accent);border-color:var(--accent)}.btn--secondary{color:var(--accent-strong);border-color:var(--line);background:0 0}.btn--secondary:hover{color:var(--accent);border-color:var(--accent-strong)}.links{flex-wrap:wrap;gap:12px;display:flex}.project-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 24px;display:flex}.project-title{margin:0;font-size:clamp(1.6rem,3.5vw,2.4rem)}.project-date{font-family:var(--font-mono);color:var(--ink-soft);margin:0;font-size:13px}.project-detail{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:48px;display:grid}.detail-main{flex-direction:column;gap:32px;min-width:0;display:flex}.detail-aside{top:calc(var(--nav-h) + 24px);flex-direction:column;gap:28px;min-width:0;display:flex;position:sticky}.detail-meta{flex-direction:column;gap:10px;display:flex}.detail-meta-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:12px}.section-sub{margin-bottom:12px;font-size:1rem}.back{font-family:var(--font-mono);color:var(--ink-soft);margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-block}.back:hover{color:var(--accent-strong)}.detail-block p{color:var(--ink-soft);margin:0}.features{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.features li{align-items:baseline;gap:10px;display:flex}.feature-mark{font-family:var(--font-mono);color:var(--accent-strong);font-weight:700}.screenshots{flex-direction:column;gap:12px;display:flex}.screenshot-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.screenshot{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--line);color:inherit;border-radius:12px;flex-direction:column;gap:12px;padding:24px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card-title{margin:0;font-size:1.2rem}.card-cover{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);background:var(--bg-alt);border-radius:8px;width:100%}.card-desc{color:var(--ink-soft);flex:1;margin:0}.card .status-pill{align-self:flex-start}.page-title{margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.6rem)}.featured-title{margin:0 0 16px;font-size:1.4rem}.featured{margin-top:40px}.all{border-top:1px solid var(--line);margin-top:56px;padding-top:40px}.filters{flex-wrap:wrap;gap:16px;margin-bottom:28px;display:flex}.filter{flex-direction:column;gap:6px;display:flex}.filter-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:12px}.filter select{font-family:var(--font-mono);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:180px;padding:10px 12px;font-size:14px}.filter select:hover{border-color:var(--accent-strong)}.empty{font-family:var(--font-mono);color:var(--ink-soft);margin:24px 0;font-size:14px}.show-more{font-family:var(--font-mono);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;margin-top:24px;padding:8px 0;font-size:14px;text-decoration:none}.show-more:hover{color:var(--accent-strong)}@media (width<=860px){.project-detail{grid-template-columns:1fr}.detail-aside{position:static}}.skeleton-shell{gap:20px;display:grid}.skeleton{gap:12px;display:grid}.skeleton-block{background:var(--line);border-radius:8px;display:block;position:relative;overflow:hidden}.skeleton-block:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0f,#0000);animation:1.4s infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-line--title{width:45%;height:1.15rem}.skeleton-line--short{width:30%;height:.9rem}.skeleton-line--long{width:100%;height:.9rem}.skeleton-tech-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.skeleton-tech{height:64px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.btn,.card{transition:none;transform:none}.skeleton-block,.skeleton-block:after{animation:none}}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);height:var(--nav-h);align-items:center;display:flex;position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:24px;display:flex}.header-actions[data-astro-cid-nen7h5rs]{align-items:center;gap:8px;display:flex}.brand[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:8px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.brand-logo[data-astro-cid-nen7h5rs]{border-radius:5px;flex-shrink:0}.nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink-soft);border-radius:8px;padding:8px 10px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:inline-block}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--ink);background:var(--bg-alt);box-shadow:inset 0 -2px 0 var(--accent)}@media (width<=1024px){.nav[data-astro-cid-nen7h5rs]{display:none}}.theme-toggle{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.theme-toggle:hover{color:var(--ink);background:var(--bg-alt)}.language-switch{height:36px;color:var(--ink-soft);font-family:var(--font-mono);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.language-switch:hover{color:var(--ink);background:var(--bg-alt)}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:var(--bg-alt);padding:40px 0}.footer-inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-left[data-astro-cid-jo6i4kqk]{flex-direction:column;gap:6px;display:flex}.footer-tag[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);color:var(--ink-soft);align-items:center;gap:8px;margin:0;font-size:14px;display:inline-flex}.brand-prompt[data-astro-cid-jo6i4kqk]{color:var(--accent)}.footer-meta[data-astro-cid-jo6i4kqk]{color:var(--ink-soft);margin:0;font-size:14px}.footer-socials[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.footer-socials-title[data-astro-cid-jo6i4kqk]{color:var(--ink-soft);font-size:13px}.footer-social-link[data-astro-cid-jo6i4kqk]{color:var(--ink);align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.footer-social-icon[data-astro-cid-jo6i4kqk]{flex-shrink:0}.footer-social-link[data-astro-cid-jo6i4kqk]:hover{color:var(--accent-strong)}
