.hero[data-astro-cid-ge2uvauf]{padding-block:clamp(3rem,7vw,6rem) clamp(3.5rem,7vw,6rem)}.hero-grid[data-astro-cid-ge2uvauf]{align-items:center;gap:clamp(2.5rem,5vw,4rem);display:grid}.hero-copy[data-astro-cid-ge2uvauf]{flex-direction:column;gap:1.15rem;max-width:38rem;display:flex}.availability[data-astro-cid-ge2uvauf]{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);color:var(--ink-2);border-radius:999px;align-self:flex-start;align-items:center;gap:.55rem;padding:.4rem .9rem .4rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.dot[data-astro-cid-ge2uvauf]{background:var(--teal-500);border-radius:50%;flex:none;width:.5rem;height:.5rem;position:relative}.dot[data-astro-cid-ge2uvauf]:after{content:"";border:2px solid var(--teal-400);opacity:.5;animation:ping 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:-4px}@keyframes ping{0%{opacity:.7;transform:scale(.6)}70%,to{opacity:0;transform:scale(1.35)}}h1[data-astro-cid-ge2uvauf]{letter-spacing:-.032em;font-size:clamp(2.25rem,1.3rem + 4.2vw,3.9rem);font-weight:800;line-height:1.08}.hero-sub[data-astro-cid-ge2uvauf]{color:var(--ink-2);max-width:34rem;font-size:clamp(1.02rem,.98rem + .3vw,1.16rem)}.hero-actions[data-astro-cid-ge2uvauf]{flex-wrap:wrap;gap:.7rem;margin-top:.35rem;display:flex}.hero-meta[data-astro-cid-ge2uvauf]{color:var(--ink-3);align-items:center;gap:.4rem;font-size:.88rem;display:inline-flex}.hero-meta[data-astro-cid-ge2uvauf] svg[data-astro-cid-ge2uvauf]{width:1rem;height:1rem}.hero-stats[data-astro-cid-ge2uvauf]{border-top:1px solid var(--border);flex-wrap:wrap;gap:clamp(1.25rem,4vw,2.75rem);margin-top:.9rem;padding-top:1.4rem;display:flex}.hero-stats[data-astro-cid-ge2uvauf] li[data-astro-cid-ge2uvauf]{flex-direction:column;gap:.1rem;display:flex}.hero-stats[data-astro-cid-ge2uvauf] strong[data-astro-cid-ge2uvauf]{color:var(--ink);letter-spacing:-.02em;font-size:1.65rem;font-weight:800}.hero-stats[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{color:var(--ink-3);font-size:.82rem}.hero-visual[data-astro-cid-ge2uvauf]{isolation:isolate;padding-bottom:2.5rem;display:none;position:relative}.glow[data-astro-cid-ge2uvauf]{z-index:-1;background:var(--gradient-brand);filter:blur(58px);opacity:.28;border-radius:50%;position:absolute;inset:-12% -8% 4% -4%}.code-card[data-astro-cid-ge2uvauf]{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden;transform:rotate(-1.1deg)}.window-bar[data-astro-cid-ge2uvauf]{background:var(--surface-muted);border-bottom:1px solid var(--border);align-items:center;gap:.4rem;padding:.7rem .95rem;display:flex}.window-bar[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf][class^=dot-]{border-radius:50%;width:.62rem;height:.62rem}.dot-red[data-astro-cid-ge2uvauf]{background:#ff6b6b}.dot-yellow[data-astro-cid-ge2uvauf]{background:#ffc34d}.dot-green[data-astro-cid-ge2uvauf]{background:#45cf8e}.file-name[data-astro-cid-ge2uvauf]{font-family:var(--font-mono);color:var(--ink-3);margin-left:auto;font-size:.72rem}.code-card[data-astro-cid-ge2uvauf] pre[data-astro-cid-ge2uvauf]{font-family:var(--font-mono);color:var(--ink-2);margin:0;padding:1.15rem 1.25rem 1.35rem;font-size:.79rem;line-height:1.85;overflow-x:auto}.c-key[data-astro-cid-ge2uvauf]{color:var(--blue-600);font-weight:600}.c-var[data-astro-cid-ge2uvauf]{color:var(--ink);font-weight:600}.c-prop[data-astro-cid-ge2uvauf]{color:var(--teal-600)}.c-str[data-astro-cid-ge2uvauf]{color:var(--blue-500)}:root[data-theme=dark] .c-key[data-astro-cid-ge2uvauf]{color:#8ac8ff}:root[data-theme=dark] .c-prop[data-astro-cid-ge2uvauf]{color:var(--teal-300)}:root[data-theme=dark] .c-str[data-astro-cid-ge2uvauf]{color:#9fd0ff}.chart-card[data-astro-cid-ge2uvauf]{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);width:13.5rem;box-shadow:var(--shadow-lg);padding:.9rem 1rem .8rem;animation:7s ease-in-out infinite float;position:absolute;bottom:0;left:-1.75rem;transform:rotate(1.6deg)}.chart-head[data-astro-cid-ge2uvauf]{justify-content:space-between;align-items:baseline;margin-bottom:.55rem;display:flex}.chart-title[data-astro-cid-ge2uvauf]{color:var(--ink);font-size:.76rem;font-weight:700}.chart-trend[data-astro-cid-ge2uvauf]{color:var(--teal-600);font-size:.74rem;font-weight:700}:root[data-theme=dark] .chart-trend[data-astro-cid-ge2uvauf]{color:var(--teal-300)}.chart[data-astro-cid-ge2uvauf]{width:100%;height:auto}.pill-card[data-astro-cid-ge2uvauf]{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--ink);border-radius:999px;align-items:center;gap:.45rem;padding:.5rem .85rem;font-size:.76rem;font-weight:600;animation:6s ease-in-out infinite reverse float;display:inline-flex;position:absolute;top:-1.1rem;right:-.75rem}.pill-dot[data-astro-cid-ge2uvauf]{background:#45cf8e;border-radius:50%;width:.45rem;height:.45rem}@keyframes float{0%,to{transform:translateY(0)rotate(1.6deg)}50%{transform:translateY(-9px)rotate(1.6deg)}}@media (width>=980px){.hero-grid[data-astro-cid-ge2uvauf]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.hero-visual[data-astro-cid-ge2uvauf]{display:block}}.about-grid[data-astro-cid-oxgmilyn]{align-items:start;gap:clamp(2rem,4.5vw,3.5rem);display:grid}.about-copy[data-astro-cid-oxgmilyn]{flex-direction:column;gap:1rem;max-width:36rem;display:flex}.about-copy[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]{color:var(--ink-2);font-size:1.08rem}.about-actions[data-astro-cid-oxgmilyn]{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.skills[data-astro-cid-oxgmilyn]{gap:1.1rem;display:grid}.skill-card[data-astro-cid-oxgmilyn]{--chip:var(--gradient-se);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease), box-shadow .3s var(--ease);padding:1.35rem 1.4rem 1.5rem}.skill-card[data-astro-cid-oxgmilyn][data-accent=da]{--chip:var(--gradient-da)}.skill-card[data-astro-cid-oxgmilyn]:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.skill-head[data-astro-cid-oxgmilyn]{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.skill-icon[data-astro-cid-oxgmilyn]{background:var(--chip);color:#fff;border-radius:12px;flex:none;place-items:center;width:2.4rem;height:2.4rem;display:grid}.skill-icon[data-astro-cid-oxgmilyn] svg[data-astro-cid-oxgmilyn]{width:1.2rem;height:1.2rem}.skill-head[data-astro-cid-oxgmilyn] h3[data-astro-cid-oxgmilyn]{font-size:1.05rem}.skill-card[data-astro-cid-oxgmilyn] ul[data-astro-cid-oxgmilyn]{flex-wrap:wrap;gap:.42rem;display:flex}@media (width>=900px){.about-grid[data-astro-cid-oxgmilyn]{grid-template-columns:minmax(0,1fr) minmax(0,.92fr)}}.project-card[data-astro-cid-y2vllrex]{--card-accent:var(--gradient-se);--card-tint:var(--blue-100);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card[data-astro-cid-y2vllrex][data-accent=da]{--card-accent:var(--gradient-da);--card-tint:var(--accent-soft)}.project-card[data-astro-cid-y2vllrex]:before{content:"";background:var(--card-accent);opacity:0;height:3px;transition:opacity .3s var(--ease);z-index:3;position:absolute;inset:0 0 auto}.project-card[data-astro-cid-y2vllrex]:hover,.project-card[data-astro-cid-y2vllrex]:focus-within{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-6px)}.project-card[data-astro-cid-y2vllrex]:hover:before,.project-card[data-astro-cid-y2vllrex]:focus-within:before{opacity:1}.preview[data-astro-cid-y2vllrex]{aspect-ratio:16/9;background:var(--surface-muted);border-bottom:1px solid var(--border);position:relative;overflow:hidden}.preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease)}.project-card[data-astro-cid-y2vllrex]:hover .preview[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{transform:scale(1.045)}.preview-fallback[data-astro-cid-y2vllrex]{background:radial-gradient(70% 90% at 50% 0%, var(--card-tint), transparent 70%), var(--surface-muted);place-items:center;height:100%;display:grid;position:relative}.preview-fallback[data-astro-cid-y2vllrex] .mock-bar[data-astro-cid-y2vllrex]{gap:.28rem;display:flex;position:absolute;top:.8rem;left:.9rem}.preview-fallback[data-astro-cid-y2vllrex] .mock-bar[data-astro-cid-y2vllrex] span[data-astro-cid-y2vllrex]{background:var(--border-strong);border-radius:50%;width:.42rem;height:.42rem}.preview-fallback[data-astro-cid-y2vllrex] .mock-window[data-astro-cid-y2vllrex]{flex-direction:column;align-items:center;gap:.95rem;width:min(62%,15rem);display:flex}.preview-fallback[data-astro-cid-y2vllrex] .initials[data-astro-cid-y2vllrex]{background:var(--card-accent);color:#fff;letter-spacing:.01em;border-radius:18px;place-items:center;width:3.4rem;height:3.4rem;font-size:1.22rem;font-weight:800;display:grid;box-shadow:0 12px 26px -12px #1e70d2e6}.preview-fallback[data-astro-cid-y2vllrex] .mock-lines[data-astro-cid-y2vllrex]{flex-direction:column;align-items:center;gap:.35rem;width:100%;display:flex}.preview-fallback[data-astro-cid-y2vllrex] .mock-lines[data-astro-cid-y2vllrex] i[data-astro-cid-y2vllrex]{background:var(--border);border-radius:999px;height:.36rem}.status[data-astro-cid-y2vllrex]{letter-spacing:.03em;text-transform:uppercase;background:var(--surface);border:1px solid var(--border);color:var(--ink-2);box-shadow:var(--shadow-sm);border-radius:999px;padding:.22rem .6rem;font-size:.68rem;font-weight:700;position:absolute;top:.75rem;right:.75rem}.status--live[data-astro-cid-y2vllrex]{color:#0f8a56}.status--wip[data-astro-cid-y2vllrex]{color:#b8710d}:root[data-theme=dark] .status--live[data-astro-cid-y2vllrex]{color:#56d99a}:root[data-theme=dark] .status--wip[data-astro-cid-y2vllrex]{color:#ffc773}.body[data-astro-cid-y2vllrex]{flex-direction:column;flex:1;gap:.6rem;padding:1.25rem 1.3rem 1.35rem;display:flex}.meta[data-astro-cid-y2vllrex]{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:1.1rem;display:flex}.year[data-astro-cid-y2vllrex]{letter-spacing:.06em;color:var(--ink-3);font-size:.75rem;font-weight:700}.highlight[data-astro-cid-y2vllrex]{background:var(--card-tint);color:var(--ink);border-radius:999px;padding:.16rem .55rem;font-size:.72rem;font-weight:700}:root[data-theme=dark] .project-card[data-astro-cid-y2vllrex][data-accent=se] .highlight[data-astro-cid-y2vllrex]{background:var(--brand-soft)}h3[data-astro-cid-y2vllrex]{letter-spacing:-.012em;font-size:1.12rem;line-height:1.32}h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{color:var(--ink);transition:color .2s var(--ease)}h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:after{content:"";z-index:1;position:absolute;inset:0}.project-card[data-astro-cid-y2vllrex]:hover h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{color:var(--brand-strong)}.desc[data-astro-cid-y2vllrex]{color:var(--ink-2);font-size:.92rem;line-height:1.65}.tags[data-astro-cid-y2vllrex]{flex-wrap:wrap;gap:.35rem;margin-top:.15rem;display:flex}.actions[data-astro-cid-y2vllrex]{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:.95rem;display:flex}.open[data-astro-cid-y2vllrex]{color:var(--brand-strong);align-items:center;gap:.35rem;font-size:.86rem;font-weight:700;display:inline-flex}.open[data-astro-cid-y2vllrex] svg[data-astro-cid-y2vllrex]{width:.95rem;height:.95rem;transition:transform .25s var(--ease)}.project-card[data-astro-cid-y2vllrex]:hover .open[data-astro-cid-y2vllrex] svg[data-astro-cid-y2vllrex]{transform:translate(2px,-2px)}.repo[data-astro-cid-y2vllrex]{z-index:2;width:2rem;height:2rem;color:var(--ink-3);border:1px solid var(--border);transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:9px;place-items:center;display:grid;position:relative}.repo[data-astro-cid-y2vllrex]:hover{color:var(--ink);border-color:var(--border-strong)}.repo[data-astro-cid-y2vllrex] svg[data-astro-cid-y2vllrex]{width:1.05rem;height:1.05rem}@media (width<=639px){.project-card[data-astro-cid-y2vllrex]{border-radius:var(--radius)}.project-card[data-astro-cid-y2vllrex]:hover,.project-card[data-astro-cid-y2vllrex]:focus-within{transform:translateY(-3px)}.preview[data-astro-cid-y2vllrex]{aspect-ratio:4/3}.preview-fallback[data-astro-cid-y2vllrex] .mock-bar[data-astro-cid-y2vllrex],.preview-fallback[data-astro-cid-y2vllrex] .mock-lines[data-astro-cid-y2vllrex]{display:none}.preview-fallback[data-astro-cid-y2vllrex] .initials[data-astro-cid-y2vllrex]{border-radius:13px;width:2.6rem;height:2.6rem;font-size:.95rem}.status[data-astro-cid-y2vllrex]{padding:.14rem .45rem;font-size:.6rem;top:.45rem;right:.45rem}.body[data-astro-cid-y2vllrex]{gap:.4rem;padding:.75rem .8rem .85rem}.meta[data-astro-cid-y2vllrex]{gap:.3rem;min-height:0}.year[data-astro-cid-y2vllrex]{font-size:.66rem}.highlight[data-astro-cid-y2vllrex]{padding:.1rem .4rem;font-size:.62rem}h3[data-astro-cid-y2vllrex]{font-size:.92rem}.desc[data-astro-cid-y2vllrex]{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.5;display:-webkit-box;overflow:hidden}.tags[data-astro-cid-y2vllrex]{gap:.25rem}.tags[data-astro-cid-y2vllrex] .tag{padding:.16rem .45rem;font-size:.64rem}.tags[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]:nth-child(n+4){display:none}.actions[data-astro-cid-y2vllrex]{gap:.4rem;padding-top:.6rem}.open[data-astro-cid-y2vllrex]{gap:.2rem;font-size:.74rem}.repo[data-astro-cid-y2vllrex]{border-radius:8px;width:1.7rem;height:1.7rem}.repo[data-astro-cid-y2vllrex] svg[data-astro-cid-y2vllrex]{width:.9rem;height:.9rem}}@media (width>=1000px){.project-card[data-astro-cid-y2vllrex].is-featured{flex-direction:row;grid-column:span 2}.project-card[data-astro-cid-y2vllrex].is-featured .preview[data-astro-cid-y2vllrex]{aspect-ratio:auto;border-bottom:none;border-right:1px solid var(--border);flex:0 0 52%}.project-card[data-astro-cid-y2vllrex].is-featured .body[data-astro-cid-y2vllrex]{justify-content:center;padding:1.6rem 1.7rem}.project-card[data-astro-cid-y2vllrex].is-featured h3[data-astro-cid-y2vllrex]{font-size:1.35rem}.project-card[data-astro-cid-y2vllrex].is-featured .preview-fallback[data-astro-cid-y2vllrex] .initials[data-astro-cid-y2vllrex]{border-radius:22px;width:4.4rem;height:4.4rem;font-size:1.55rem}.project-card[data-astro-cid-y2vllrex].is-featured .desc[data-astro-cid-y2vllrex]{font-size:.97rem}}.grid[data-astro-cid-ecyvuypr]{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,2.2vw,1.6rem);display:grid}@media (width>=1000px){.grid[data-astro-cid-ecyvuypr]{grid-template-columns:repeat(3,minmax(0,1fr))}}.show-more[data-astro-cid-ecyvuypr]{justify-content:center;margin-top:clamp(1.75rem,3vw,2.5rem);display:flex}.show-more[data-astro-cid-ecyvuypr] .btn[data-astro-cid-ecyvuypr] svg[data-astro-cid-ecyvuypr]{width:1rem;height:1rem;transition:transform .25s var(--ease)}.show-more[data-astro-cid-ecyvuypr] .btn[data-astro-cid-ecyvuypr][aria-expanded=true] svg[data-astro-cid-ecyvuypr]{transform:rotate(180deg)}.empty[data-astro-cid-ecyvuypr]{border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--ink-3);padding:2rem}.empty[data-astro-cid-ecyvuypr] code[data-astro-cid-ecyvuypr]{font-family:var(--font-mono);color:var(--brand-strong);font-size:.88em}.contact-card[data-astro-cid-he3spzz3]{border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);grid-template-columns:minmax(0,1fr);gap:clamp(1.75rem,4vw,3rem);padding:clamp(1.75rem,4vw,3.25rem);display:grid;position:relative;overflow:hidden}.contact-card[data-astro-cid-he3spzz3]:before{content:"";background:radial-gradient(70% 120% at 100% 0%, var(--brand-soft), transparent 62%);pointer-events:none;position:absolute;inset:0}.contact-copy[data-astro-cid-he3spzz3]{flex-direction:column;gap:.9rem;max-width:34rem;display:flex;position:relative}.contact-actions[data-astro-cid-he3spzz3] .btn[data-astro-cid-he3spzz3]{overflow-wrap:anywhere;max-width:100%}.contact-lead[data-astro-cid-he3spzz3]{color:var(--ink);font-size:1.15rem;font-weight:600}.contact-actions[data-astro-cid-he3spzz3]{flex-wrap:wrap;gap:.65rem;margin-top:.4rem;display:flex}.contact-links[data-astro-cid-he3spzz3]{grid-template-columns:minmax(0,1fr);align-content:start;gap:.6rem;display:grid;position:relative}.contact-links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]{border-radius:var(--radius);background:var(--surface-muted);border:1px solid var(--border);min-width:0;color:var(--ink);transition:transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);align-items:center;gap:.85rem;padding:.85rem 1rem;display:flex}.contact-links[data-astro-cid-he3spzz3] a[data-astro-cid-he3spzz3]:hover{border-color:var(--brand);background:var(--surface);transform:translate(4px)}.link-icon[data-astro-cid-he3spzz3]{background:var(--gradient-brand);color:#fff;border-radius:11px;flex:none;place-items:center;width:2.35rem;height:2.35rem;display:grid}.link-icon[data-astro-cid-he3spzz3] svg[data-astro-cid-he3spzz3]{width:1.15rem;height:1.15rem}.link-text[data-astro-cid-he3spzz3]{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.link-text[data-astro-cid-he3spzz3] strong[data-astro-cid-he3spzz3]{font-size:.94rem;font-weight:700}.link-text[data-astro-cid-he3spzz3] small[data-astro-cid-he3spzz3]{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.arrow[data-astro-cid-he3spzz3]{width:1rem;height:1rem;color:var(--ink-3);flex:none;margin-left:auto}@media (width>=900px){.contact-card[data-astro-cid-he3spzz3]{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}}
