:root{--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--bg:#fafafa;--surface:#fff;--text:#101113;--text-secondary:#5d6067;--text-tertiary:#8a8d93;--border:#e4e4e7;--border-strong:#d4d4d8;--accent:#4b5cb0;--accent-strong:#384794;--accent-soft:#eef0fa;--focus-ring:#4b5cb0;--max-width:1120px;--space-section:clamp(4rem, 8vw, 7rem)}@media (prefers-color-scheme:dark){:root{--bg:#0b0c0e;--surface:#131418;--text:#f1f2f3;--text-secondary:#a3a6ad;--text-tertiary:#74777e;--border:#232428;--border-strong:#303136;--accent:#8b9aec;--accent-strong:#aab5f0;--accent-soft:#191c2b;--focus-ring:#8b9aec}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:88px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html,body{width:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit}img,svg{max-width:100%;display:block}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.skip-link{background:var(--accent);color:#fff;z-index:100;border-radius:6px;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:top .15s;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.section{padding-block:var(--space-section);border-bottom:1px solid var(--border)}.section-inner{max-width:var(--max-width);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem)}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-size:.8rem;font-weight:500}.section h2{margin-bottom:2.5rem;font-size:clamp(1.6rem,3vw,2.1rem)}.btn{font-family:var(--font-sans);border:1px solid #0000;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.4rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong)}.btn-secondary{color:var(--text);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.nav[data-astro-cid-wpvy4v7s]{inset-inline:0;z-index:50;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:fixed;top:0}.nav-inner[data-astro-cid-wpvy4v7s]{max-width:var(--max-width);justify-content:space-between;align-items:center;height:64px;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem);display:flex}.logo[data-astro-cid-wpvy4v7s]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:.3rem .55rem;font-size:.95rem;font-weight:500;line-height:1;text-decoration:none}.logo[data-astro-cid-wpvy4v7s]:hover{border-color:var(--accent);color:var(--accent)}ul[data-astro-cid-wpvy4v7s]{align-items:center;gap:clamp(1rem,3vw,2rem);display:flex}a[data-astro-cid-wpvy4v7s]{text-decoration:none}nav[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] li[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .15s}nav[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s] li[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{color:var(--text)}.hero[data-astro-cid-ge2uvauf]{padding-block:clamp(7rem, 16vw, 10rem) var(--space-section);border-bottom:1px solid var(--border)}.hero-inner[data-astro-cid-ge2uvauf]{max-width:var(--max-width);max-width:780px;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem)}.eyebrow[data-astro-cid-ge2uvauf]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.8rem;font-weight:500;display:inline-flex}.dot[data-astro-cid-ge2uvauf]{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px}h1[data-astro-cid-ge2uvauf]{white-space:nowrap;margin-bottom:1.75rem;font-size:clamp(1.9rem,6.5vw,4rem);line-height:1.05}.intro-row[data-astro-cid-ge2uvauf]{align-items:flex-start;gap:clamp(1.25rem,3.5vw,2rem);display:flex}.intro-row[data-astro-cid-ge2uvauf] .avatar{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:clamp(96px,14vw,152px);height:clamp(96px,14vw,152px)}.intro-text[data-astro-cid-ge2uvauf]{flex:1;min-width:0}.role[data-astro-cid-ge2uvauf]{color:var(--text);margin-bottom:1.25rem;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:500}.lead[data-astro-cid-ge2uvauf]{color:var(--text-secondary);max-width:58ch;margin-bottom:2.5rem;font-size:1.05rem;line-height:1.65}.cta-row[data-astro-cid-ge2uvauf]{flex-wrap:wrap;gap:.9rem;display:flex}@media (width<=560px){.intro-row[data-astro-cid-ge2uvauf]{text-align:center;flex-direction:column;align-items:center}.intro-row[data-astro-cid-ge2uvauf] .avatar{width:96px;height:96px}.eyebrow[data-astro-cid-ge2uvauf]{justify-content:center}h1[data-astro-cid-ge2uvauf]{text-align:center}.lead[data-astro-cid-ge2uvauf]{max-width:100%}.cta-row[data-astro-cid-ge2uvauf]{justify-content:center}}@media (width<=480px){h1[data-astro-cid-ge2uvauf]{font-size:clamp(1.5rem,8vw,2.5rem)}}.card[data-astro-cid-y2vllrex]{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:clamp(1.5rem,4vw,2.5rem);transition:border-color .15s}.card[data-astro-cid-y2vllrex]:hover{border-color:var(--border-strong)}h3[data-astro-cid-y2vllrex]{margin-bottom:.6rem;font-size:1.5rem}.tagline[data-astro-cid-y2vllrex]{color:var(--accent);margin-bottom:1.25rem;font-weight:500;line-height:1.5}.description[data-astro-cid-y2vllrex]{color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.7}.context[data-astro-cid-y2vllrex]{color:var(--text-tertiary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.context-label[data-astro-cid-y2vllrex]{font-family:var(--font-mono);color:var(--text-secondary)}.tech[data-astro-cid-y2vllrex]{flex-wrap:wrap;gap:.5rem;display:flex}.tech[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]{font-family:var(--font-mono);color:var(--text-secondary);background:var(--accent-soft);border-radius:6px;padding:.3rem .6rem;font-size:.78rem}.card-links[data-astro-cid-y2vllrex]{border-top:1px solid var(--border);flex-wrap:wrap;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;display:flex}.card-links[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{color:var(--text);align-items:center;gap:.3rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.card-links[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:hover{color:var(--accent)}.project-list[data-astro-cid-ftq3vvlr]{flex-direction:column;gap:1.5rem;display:flex}.about-grid[data-astro-cid-oxgmilyn]{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:clamp(2.5rem,6vw,5rem);display:grid}.about-text[data-astro-cid-oxgmilyn] .eyebrow[data-astro-cid-oxgmilyn],.about-text[data-astro-cid-oxgmilyn] h2[data-astro-cid-oxgmilyn]{margin-bottom:0}.about-text[data-astro-cid-oxgmilyn] h2[data-astro-cid-oxgmilyn]{margin-bottom:1.5rem}.body-text[data-astro-cid-oxgmilyn]{color:var(--text-secondary);font-size:1.05rem;line-height:1.75}.skills[data-astro-cid-oxgmilyn]{flex-direction:column;gap:1.75rem;display:flex}.skill-label[data-astro-cid-oxgmilyn]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:.75rem;font-size:.78rem;font-weight:500}.skill-group[data-astro-cid-oxgmilyn] ul[data-astro-cid-oxgmilyn]{flex-wrap:wrap;gap:.5rem;display:flex}.skill-group[data-astro-cid-oxgmilyn] li[data-astro-cid-oxgmilyn]{color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .75rem;font-size:.88rem;font-weight:500}@media (width<=800px){.about-grid[data-astro-cid-oxgmilyn]{grid-template-columns:1fr}}.secret-trigger[data-astro-cid-jcdrkyq6]{color:var(--text-tertiary);cursor:pointer;opacity:.35;background:0 0;border:none;margin-top:.5rem;padding:.35rem;font-size:.75rem;line-height:1;transition:opacity .15s}.secret-trigger[data-astro-cid-jcdrkyq6]:hover,.secret-trigger[data-astro-cid-jcdrkyq6]:focus-visible{opacity:1;color:var(--text-secondary)}.secret-dialog[data-astro-cid-jcdrkyq6]{border:1px solid var(--border);background:var(--surface);width:min(320px,100vw - 2.5rem);color:var(--text);border-radius:14px;padding:1.75rem;box-shadow:0 20px 50px #0000002e}.secret-dialog[data-astro-cid-jcdrkyq6]::backdrop{background:#0a0a0c8c}.secret-label[data-astro-cid-jcdrkyq6]{margin-bottom:.75rem;font-size:.9rem;font-weight:600}.secret-form[data-astro-cid-jcdrkyq6] input[data-astro-cid-jcdrkyq6]{width:100%;font-family:var(--font-sans);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);border-radius:8px;padding:.65rem .8rem;font-size:1rem}.secret-form[data-astro-cid-jcdrkyq6] input[data-astro-cid-jcdrkyq6]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.secret-error[data-astro-cid-jcdrkyq6]{color:#c0392b;min-height:1.2em;margin-top:.6rem;font-size:.85rem}.secret-actions[data-astro-cid-jcdrkyq6]{gap:.6rem;margin-top:1rem;display:flex}.secret-actions[data-astro-cid-jcdrkyq6] .btn[data-astro-cid-jcdrkyq6]{flex:1;justify-content:center;padding:.6rem 1rem;font-size:.9rem}.contact-section[data-astro-cid-he3spzz3]{border-bottom:none}.contact-list[data-astro-cid-he3spzz3]{flex-direction:column;gap:1rem;display:flex}.contact-link[data-astro-cid-he3spzz3]{border:1px solid var(--border);border-radius:12px;align-items:center;gap:1.25rem;padding:1.5rem;text-decoration:none;transition:border-color .15s,background-color .15s;display:flex}.contact-link[data-astro-cid-he3spzz3]:hover{border-color:var(--accent);background:var(--accent-soft)}.icon[data-astro-cid-he3spzz3]{width:28px;height:28px;color:var(--text-secondary);flex-shrink:0}.contact-link[data-astro-cid-he3spzz3]:hover .icon[data-astro-cid-he3spzz3]{color:var(--accent)}.contact-text[data-astro-cid-he3spzz3]{flex-direction:column;gap:.2rem;display:flex}.contact-label[data-astro-cid-he3spzz3]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-size:.75rem}.contact-value[data-astro-cid-he3spzz3]{font-size:1.1rem;font-weight:600}.footer[data-astro-cid-he3spzz3]{text-align:center;padding-block:2rem}.footer[data-astro-cid-he3spzz3] p[data-astro-cid-he3spzz3]{color:var(--text-tertiary);font-size:.85rem}
