*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0a;--bg-card: #161616;--border: #262626;--text: #ededed;--text-muted: #a1a1aa;--text-subtle: #52525b;--accent: #4ade80;--accent-hover: #22c55e;--accent-dim: rgba(74, 222, 128, .08);--radius: 10px;--container: 860px;--sidebar-width: 300px;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--transition: .15s ease}html{scroll-behavior:smooth;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}body{min-height:100dvh}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit}.container{max-width:var(--container);margin:0 auto;padding:0 24px}section{padding:96px 0}.section-label{font-family:var(--font-mono);font-size:.75rem;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px}.section-title{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--text);margin-bottom:48px}.site-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100dvh}.site-content,.site-main{min-width:0}.mobile-nav-bar,.site-sidebar-backdrop{display:none}.site-sidebar{position:sticky;top:0;height:100dvh;border-right:1px solid var(--border);background:radial-gradient(circle at top left,rgba(74,222,128,.12),transparent 28%),linear-gradient(180deg,#101010fa,#0a0a0afa)}.site-sidebar-panel{display:flex;flex-direction:column;height:100%;padding:28px 20px 24px}.site-sidebar-top{padding:4px 10px 24px;border-bottom:1px solid var(--border);margin-bottom:24px}.site-sidebar-role{margin-top:10px;font-size:.8rem;color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.04em}.nav-logo{font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--text);transition:color var(--transition)}.nav-logo:hover,.nav-logo-dot{color:var(--accent)}.nav-tree{overflow:auto;padding-right:6px}.nav-list,.nav-children{list-style:none}.nav-item{padding-left:calc(var(--depth) * 14px)}.nav-item+.nav-item{margin-top:8px}.nav-row{display:flex;align-items:center;gap:10px;min-height:36px}.nav-link,.nav-label{flex:1;min-width:0;font-size:.88rem;color:var(--text-muted);transition:color var(--transition)}.nav-link:hover{color:var(--text)}.nav-label{color:var(--text-subtle)}.nav-subtoggle{width:24px;height:24px;border:1px solid var(--border);border-radius:999px;color:var(--text-subtle);font-size:.9rem;line-height:1;transition:border-color var(--transition),color var(--transition),background var(--transition)}.nav-subtoggle:hover{border-color:var(--text-subtle);color:var(--text);background:#ffffff08}.nav-children{margin-top:8px;padding-top:2px;border-left:1px solid rgba(255,255,255,.06)}.nav-children>.nav-item:first-child{margin-top:0}.hero{min-height:100dvh;display:flex;align-items:center;padding:80px 0}.hero-greeting{font-family:var(--font-mono);font-size:.875rem;color:var(--accent);margin-bottom:16px;letter-spacing:.05em}.hero-name{font-size:clamp(3rem,10vw,5.5rem);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--text);margin-bottom:8px}.hero-name-dot{color:var(--accent)}.hero-role{font-size:clamp(1.25rem,4vw,1.75rem);font-weight:400;color:var(--text-muted);letter-spacing:-.02em;margin-bottom:20px}.hero-tagline{font-size:1rem;color:var(--text-subtle);max-width:420px;margin-bottom:40px;line-height:1.7}.hero-cta{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:6px;font-size:.875rem;font-weight:500;transition:all var(--transition)}.btn-primary{background:var(--accent);color:#0a0a0a}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--text-subtle);color:var(--text)}.highlights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.highlight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:grid;gap:10px}.highlight-label{font-size:.72rem;font-family:var(--font-mono);color:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase}.highlight-value{font-size:clamp(1.5rem,3vw,2rem);line-height:1;letter-spacing:-.04em}.highlight-detail{font-size:.9rem;color:var(--text-muted);line-height:1.6}.project-groups{display:grid;gap:28px}.project-group{display:grid;gap:16px}.featured-projects{display:grid;gap:16px;margin-bottom:28px}.featured-projects-copy{max-width:720px;color:var(--text-muted);line-height:1.7}.featured-projects-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.project-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.project-group-head h3{font-size:1rem;letter-spacing:.02em}.project-group-head span{font-size:.75rem;font-family:var(--font-mono);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:16px;transition:border-color var(--transition),transform var(--transition)}.project-card:hover{border-color:var(--text-subtle);transform:translateY(-2px)}.project-card.featured{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 14%,transparent)}.project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-card-header h3{font-size:1rem;font-weight:600;color:var(--text);letter-spacing:-.01em}.project-status{margin-top:6px;font-size:.72rem;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.project-status.completed{color:var(--accent)}.project-status.in-progress{color:#fbbf24}.project-links{display:flex;gap:10px;flex-shrink:0}.project-links a{color:var(--text-subtle);transition:color var(--transition);display:flex;align-items:center}.project-links a:hover{color:var(--text)}.project-description{font-size:.875rem;color:var(--text-muted);line-height:1.65}.project-highlights{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--text-muted);font-size:.82rem;line-height:1.55;flex:1}.project-card-actions{display:flex;align-items:center;gap:12px}.project-detail-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-size:.82rem;font-family:var(--font-mono);letter-spacing:.02em}.project-detail-link:hover{color:var(--accent-hover)}.project-stack{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin-top:auto}.project-stack li{font-family:var(--font-mono);font-size:.7rem;color:var(--accent);background:var(--accent-dim);padding:3px 9px;border-radius:4px;letter-spacing:.02em}.project-detail-page{padding-top:72px}.project-detail-shell{display:grid;gap:28px}.project-backlink{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-family:var(--font-mono);color:var(--text-subtle);letter-spacing:.04em}.project-backlink:hover{color:var(--text)}.project-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:32px;align-items:start}.project-detail-heading{display:grid;gap:12px}.project-detail-title{font-size:clamp(2.4rem,6vw,4.6rem);line-height:.98;letter-spacing:-.05em}.project-detail-summary,.project-detail-copy{max-width:760px;color:var(--text-muted);line-height:1.8;font-size:1rem}.project-detail-aside{display:grid;gap:14px;justify-items:start}.project-detail-links{display:flex;flex-direction:column;gap:10px;width:100%}.project-detail-links .btn{justify-content:center;width:100%}.project-detail-meta,.project-detail-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-detail-content{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-panel,.project-related-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.project-detail-panel{padding:24px;display:grid;gap:14px}.project-detail-panel h2{font-size:.9rem;font-family:var(--font-mono);color:var(--text);text-transform:uppercase;letter-spacing:.08em}.project-detail-panel p{color:var(--text-muted);line-height:1.8}.project-detail-list{padding-left:18px;display:grid;gap:10px;color:var(--text-muted);line-height:1.7}.project-metrics-grid,.project-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.project-metric-card{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,rgba(74,222,128,.08),transparent 60%),var(--bg-card)}.project-detail-related{display:grid;gap:16px}.project-related-card{display:grid;gap:10px;padding:22px;transition:border-color var(--transition),transform var(--transition)}.project-related-card:hover{border-color:var(--text-subtle);transform:translateY(-2px)}.project-related-card h3{font-size:1rem}.project-related-card p:last-child{color:var(--text-muted);line-height:1.7}.about-content{display:grid;grid-template-columns:1fr 220px;gap:64px;align-items:start}.about-bio{display:flex;flex-direction:column;gap:16px}.about-bio p{font-size:1rem;color:var(--text-muted);line-height:1.75}.about-sidebar h3{font-size:.75rem;font-family:var(--font-mono);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px}.stack-list{list-style:none;display:flex;flex-direction:column;gap:10px}.stack-list li{font-size:.875rem;color:var(--text-muted);display:flex;align-items:center;gap:8px}.stack-bullet{color:var(--accent);font-size:.7rem}.downloads-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.download-card{display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:220px;padding:28px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,rgba(74,222,128,.06),transparent 45%),var(--bg-card)}.download-card h3{font-size:1.1rem;margin-bottom:10px}.download-card p{color:var(--text-muted);line-height:1.7}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.contact-intro p{font-size:1rem;color:var(--text-muted);line-height:1.75;margin-bottom:24px}.contact-email{font-size:1.1rem;font-weight:600;color:var(--accent);transition:color var(--transition)}.contact-email:hover{color:var(--accent-hover)}.contact-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:.75rem;font-family:var(--font-mono);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em}.form-field input,.form-field textarea{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-size:.875rem;color:var(--text);outline:none;transition:border-color var(--transition);resize:none}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field textarea{min-height:120px}.form-status{font-size:.875rem;padding:10px 14px;border-radius:6px}.form-status.success{color:var(--accent);background:var(--accent-dim)}.form-status.error{color:#f87171;background:#f8717114}.footer{padding:48px 0;border-top:1px solid var(--border)}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.footer-links{display:flex;gap:24px}.footer-links a{font-size:.875rem;color:var(--text-muted);transition:color var(--transition)}.footer-links a:hover{color:var(--text)}.footer-credit{font-size:.75rem;color:var(--text-subtle)}.footer-credit a{color:var(--text-subtle);transition:color var(--transition)}.footer-credit a:hover{color:var(--text-muted)}@media (max-width: 920px){.site-shell{display:block}.mobile-nav-bar{position:sticky;top:0;z-index:120;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 20px;background:#0a0a0aeb;border-bottom:1px solid var(--border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:36px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);background:#ffffff05}.site-sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:129;background:#0000008c;opacity:0;pointer-events:none;transition:opacity var(--transition)}.site-sidebar-backdrop.open{display:block;opacity:1;pointer-events:auto}.site-sidebar{position:fixed;inset:0 auto 0 0;z-index:130;width:min(86vw,320px);transform:translate(-100%);transition:transform .22s ease}.site-sidebar.open{transform:translate(0)}.hero{min-height:auto;padding-top:64px}.project-detail-hero,.project-detail-content{grid-template-columns:1fr}.project-detail-aside{max-width:320px}}@media (max-width: 640px){.project-detail-page{padding-top:56px}.project-detail-meta,.about-content,.contact-inner{grid-template-columns:1fr;gap:40px}.site-sidebar-panel{padding-inline:16px}.hero-name{letter-spacing:-.03em}.footer-inner{flex-direction:column;align-items:flex-start}}
