.container[data-astro-cid-j7pv25f6]{max-width:760px;margin:0 auto;padding:40px 24px 80px}.header[data-astro-cid-j7pv25f6]{margin-bottom:48px;display:grid;gap:24px;animation:fade-up .6s ease forwards;opacity:0}.heading[data-astro-cid-j7pv25f6]{display:grid;gap:12px}.eyebrow[data-astro-cid-j7pv25f6]{margin:0;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.name[data-astro-cid-j7pv25f6]{font-size:1.35rem;margin:0;font-weight:500;letter-spacing:.04em;color:var(--color-text)}.tagline[data-astro-cid-j7pv25f6]{margin:0;font-size:.95rem;color:var(--color-text-muted);letter-spacing:.04em}.header-meta[data-astro-cid-j7pv25f6]{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;padding:0;margin:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.section[data-astro-cid-j7pv25f6]{padding:32px 0;margin:0;border-top:1px solid var(--color-border);display:grid;grid-template-columns:160px 1fr;gap:28px;opacity:0;transform:translateY(12px);animation:fade-up .6s ease forwards;animation-delay:.1s}.section[data-astro-cid-j7pv25f6]:first-of-type{border-top:0;padding-top:0;animation-delay:0s}.section[data-astro-cid-j7pv25f6]:last-child{padding-bottom:0}.section[data-astro-cid-j7pv25f6]:nth-of-type(2){animation-delay:.16s}.section[data-astro-cid-j7pv25f6]:nth-of-type(3){animation-delay:.22s}.section[data-astro-cid-j7pv25f6]:nth-of-type(4){animation-delay:.28s}.section[data-astro-cid-j7pv25f6]:nth-of-type(5){animation-delay:.34s}.section[data-astro-cid-j7pv25f6]:nth-of-type(6){animation-delay:.4s}.section-heading[data-astro-cid-j7pv25f6]{position:sticky;top:96px;align-self:start}h2[data-astro-cid-j7pv25f6]{font-size:.72rem;margin:0;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.section-body[data-astro-cid-j7pv25f6]{display:grid;gap:18px}p[data-astro-cid-j7pv25f6]{font-size:.96rem;line-height:1.7;margin:0 0 16px}p[data-astro-cid-j7pv25f6]:last-child{margin-bottom:0}.links[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.links[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{position:relative}.links[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]{font-size:.88rem;color:var(--color-text);display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 0;border-bottom:1px solid var(--color-border);transition:color .25s ease,transform .25s ease,background-color .25s ease}.links[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:after{content:"->";font-size:.82rem;color:inherit;transition:transform .25s ease}.links[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover{color:var(--color-text);background:var(--color-subtle);transform:translate(4px)}.links[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover:after{transform:translate(6px)}.skills-list[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}.skills-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{padding:8px 14px;border:1px solid var(--color-border);border-radius:999px;font-size:.82rem;letter-spacing:.04em;background:var(--color-subtle);transition:transform .25s ease,border-color .25s ease,background-color .25s ease}.skills-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]:hover{transform:translateY(-3px);border-color:var(--color-border-strong);background:var(--color-card-bg)}.projects-list[data-astro-cid-j7pv25f6]{list-style:none;padding:0;margin:0;display:grid;gap:24px}.projects-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{border:1px solid var(--color-border);border-radius:6px;padding:24px;background:var(--color-card-bg);display:grid;gap:12px;transition:transform .28s ease,border-color .28s ease,background-color .28s ease}.projects-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]:hover{transform:translateY(-5px);border-color:var(--color-border-strong);background:var(--color-subtle)}.project-meta[data-astro-cid-j7pv25f6]{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.projects-list[data-astro-cid-j7pv25f6] h3[data-astro-cid-j7pv25f6]{margin:0;font-size:.98rem;font-weight:500;letter-spacing:.04em;text-transform:none}.project-link-label[data-astro-cid-j7pv25f6]{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.projects-list[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{color:var(--color-text-muted);margin:0;font-size:.88rem;line-height:1.6}.projects-list[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]{font-size:.82rem;color:var(--color-text);align-self:flex-start;border-bottom:1px solid var(--color-border);padding-bottom:2px;letter-spacing:.04em;text-transform:uppercase;transition:color .2s ease,border-color .2s ease}.projects-list[data-astro-cid-j7pv25f6] a[data-astro-cid-j7pv25f6]:hover{color:var(--color-text);border-bottom-color:var(--color-border-strong)}.timeline[data-astro-cid-j7pv25f6]{position:relative;margin:0;padding:0 0 8px;list-style:none;display:grid;gap:28px}.timeline[data-astro-cid-j7pv25f6]:before{content:"";position:absolute;top:0;bottom:0;left:18px;width:1px;background:var(--color-border)}.timeline[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{list-style:none;position:relative;padding-left:48px;display:grid;gap:10px}.timeline-node[data-astro-cid-j7pv25f6]{position:absolute;top:.65rem;left:18px;width:12px;height:12px;border-radius:50%;border:1px solid var(--color-border-strong);background:var(--color-bg);transform:translate(-50%,-50%)}.timeline-content[data-astro-cid-j7pv25f6]{display:grid;gap:6px;transition:transform .24s ease}.timeline-period[data-astro-cid-j7pv25f6]{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);transition:color .24s ease}.timeline[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{margin:0;color:var(--color-text-muted);font-size:.86rem;line-height:1.6;transition:color .24s ease}.contact-link[data-astro-cid-j7pv25f6]{color:var(--color-text);border-bottom:1px solid var(--color-border);padding-bottom:2px;letter-spacing:.04em;transition:color .2s ease,border-color .2s ease}.contact-link[data-astro-cid-j7pv25f6]:hover{color:var(--color-text);border-bottom-color:var(--color-border-strong)}@media (max-width: 640px){.container[data-astro-cid-j7pv25f6]{padding:32px 16px 64px}.header[data-astro-cid-j7pv25f6]{margin-bottom:32px}.name[data-astro-cid-j7pv25f6]{font-size:1.22rem}.header-meta[data-astro-cid-j7pv25f6]{flex-direction:column;gap:8px}.section[data-astro-cid-j7pv25f6]{grid-template-columns:1fr;gap:20px;padding:28px 0}.section-heading[data-astro-cid-j7pv25f6]{position:static}.links[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}.projects-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{padding:20px}.timeline[data-astro-cid-j7pv25f6]{gap:24px;padding-bottom:12px}.timeline[data-astro-cid-j7pv25f6]:before{left:14px}.timeline[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]{padding-left:40px}.timeline-node[data-astro-cid-j7pv25f6]{left:14px;top:.7rem}.timeline-content[data-astro-cid-j7pv25f6]{gap:8px}}@media (min-width: 768px){.header[data-astro-cid-j7pv25f6]{grid-template-columns:minmax(0,1fr) 240px;align-items:end}.header-meta[data-astro-cid-j7pv25f6]{justify-content:flex-end;text-align:right}.section[data-astro-cid-j7pv25f6]{grid-template-columns:180px 1fr;gap:40px}}@media (hover: hover) and (pointer: fine){.skills-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]:hover{transform:translateY(-6px)}.projects-list[data-astro-cid-j7pv25f6] li[data-astro-cid-j7pv25f6]:hover{transform:translateY(-8px)}.timeline-content[data-astro-cid-j7pv25f6]:hover{transform:translate(6px)}.timeline-content[data-astro-cid-j7pv25f6]:hover .timeline-period[data-astro-cid-j7pv25f6],.timeline-content[data-astro-cid-j7pv25f6]:hover p[data-astro-cid-j7pv25f6]{color:var(--color-text)}}@media (prefers-reduced-motion: reduce){[data-astro-cid-j7pv25f6],[data-astro-cid-j7pv25f6]:before,[data-astro-cid-j7pv25f6]:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
