:root{--text: #1a1a1a;--text-muted: #666;--bg: #fafafa;--border: #e5e5e5}@media (prefers-color-scheme: dark){:root{--text: #fafafa;--text-muted: #a3a3a3;--bg: #0a0a0a;--border: #262626}}*,*:before,*:after{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);background-color:var(--bg)}.app{position:relative;min-height:100vh;display:flex;flex-direction:column}.header{position:relative;z-index:1;padding:1.5rem 2rem;border-bottom:1px solid var(--border)}.nav{display:flex;justify-content:center;gap:2rem;max-width:1200px;margin:0 auto}.nav a{color:var(--text);text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:-.02em;opacity:1;transition:opacity .25s ease,color .25s ease}.nav:has(a:hover) a:not(:hover){opacity:.28;color:var(--text-muted)}.nav a:hover{color:var(--text);opacity:1}.main{position:relative;z-index:1;flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.hero{text-align:center;padding:3rem 0 4rem}.hero h1{font-size:clamp(2rem,5vw,3rem);font-weight:600;margin:0 0 .5rem;letter-spacing:-.02em}.hero p{margin:0;color:var(--text-muted);font-size:1.125rem}.section{padding:4rem 0;border-top:1px solid var(--border);text-align:center}.section:first-of-type{border-top:none}.section h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;letter-spacing:-.02em}.section p{margin:0 auto;color:var(--text-muted);max-width:60ch}.section--about .about-text{max-width:60ch;margin-left:auto;margin-right:auto;text-align:left}.section--about .about-text p{max-width:none;margin-left:0;margin-right:0}.social-links{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:1.75rem}.social-link{display:inline-flex;color:var(--text-muted);transition:color .2s ease}.social-link:hover{color:var(--text)}.social-link svg{width:1.5rem;height:1.5rem}.section--projects .project-grid{margin-top:2rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;max-width:960px;margin-left:auto;margin-right:auto;text-align:left}.project-card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.25rem 1.35rem;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--bg) 92%,var(--text) 2%);color:inherit;text-decoration:none;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,background-color .22s ease}@media (prefers-reduced-motion: reduce){.project-card{transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease}}.project-card:hover{border-color:color-mix(in srgb,var(--text) 28%,var(--border));background:color-mix(in srgb,var(--bg) 85%,var(--text) 4%);box-shadow:0 12px 36px color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-3px)}@media (prefers-reduced-motion: reduce){.project-card:hover{transform:none}}.project-card__title{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.02em}.project-card__desc{margin:0;flex:1;font-size:.9rem;line-height:1.55;color:var(--text-muted);white-space:pre-line}.project-card__pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.project-card__pill{padding:.2rem .55rem;font-size:.72rem;font-weight:500;letter-spacing:.01em;line-height:1.35;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg) 70%,var(--text-muted) 6%);color:var(--text-muted);transition:border-color .2s ease,background-color .2s ease,color .2s ease}.project-card:hover .project-card__pill{border-color:color-mix(in srgb,var(--text) 15%,var(--border));background:color-mix(in srgb,var(--bg) 55%,var(--text) 5%);color:color-mix(in srgb,var(--text-muted) 40%,var(--text) 60%)}.project-card:hover .project-card__desc{color:color-mix(in srgb,var(--text-muted) 55%,var(--text) 45%)}.project-card__cta{margin-top:.25rem;font-size:.8rem;font-weight:500;color:var(--text-muted);transition:color .2s ease}.project-card:hover .project-card__cta{color:var(--text)}article.project-card{cursor:default}.network-bg__canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;width:100%;height:100%}
