:root{--bg: #eceef5;--surface: #f8f9fc;--surface-2: #e3e6f0;--ink: #161a2e;--ink-soft: #4f5672;--line: #cfd4e3;--cobalt: #3d5cf5;--violet: #8a4dfa;--mint: #13a35b;--pink: #e8457f;--cobalt-ink: #ffffff;--amber: #ffb01f;--on-amber: #1b1406;--focus: #3d5cf5;--r-sm: 10px;--r-md: 14px;--r-lg: 22px;--r-xl: 30px;--font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--step--1: .85rem;--step-0: 1.0625rem;--step-1: 1.33rem;--step-2: 1.66rem;--step-3: 2.07rem;--step-4: clamp(2.2rem, 4.5vw, 3.2rem);--step-5: clamp(3.2rem, 9vw, 7.4rem);--gutter: clamp(16px, 4vw, 48px);--max: 1180px;color-scheme:light}:root[data-theme=dark]{--bg: #0e1020;--surface: #171a2e;--surface-2: #20243d;--ink: #eef0f8;--ink-soft: #9ba3c0;--line: #2c3150;--cobalt: #4c6bff;--violet: #9b5cff;--mint: #3ddc97;--pink: #ff5c9a;--cobalt-ink: #ffffff;--focus: #7b8fff;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}html,body{overflow-x:clip}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}h1,h2,h3{font-family:var(--font-display);line-height:1.1;margin:0;text-wrap:balance}p{margin:0}img,canvas{display:block;max-width:100%}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px}.skip-link:focus{top:12px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:var(--r-md);font:600 var(--step-0) / 1 var(--font-body);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background-color .2s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--cobalt);color:var(--cobalt-ink)}.btn--primary:hover{background:color-mix(in srgb,var(--cobalt) 86%,var(--ink))}.btn--primary:disabled{opacity:.6;cursor:progress}.btn--ghost{border-color:var(--ink);color:var(--ink)}.btn--ghost:hover{background:var(--ink);color:var(--bg)}.ext-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,currentColor 30%,transparent)}.ext-link:hover{text-decoration-color:currentColor}.text-link{font-weight:600;text-underline-offset:3px}.nav{position:fixed;inset:0 0 auto;z-index:50;transition:background-color .25s ease,box-shadow .25s ease}.nav--scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}.nav-inner{max-width:var(--max);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:24px}.nav-brand{display:flex;align-items:center;gap:10px;font:700 1.1rem var(--font-display);text-decoration:none;margin-right:auto}.nav-brand img{border-radius:7px}.nav-links{display:flex;gap:28px}.nav-links a{text-decoration:none;font-weight:500;color:var(--ink-soft)}.nav-links a:hover{color:var(--ink)}.nav-actions{display:flex;gap:6px}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:30%;border:0;background:transparent;color:var(--ink);cursor:pointer}.icon-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.nav-toggle{display:none}@media (max-width: 760px){.nav-toggle{display:grid}.nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:8px var(--gutter) 20px;background:var(--bg);box-shadow:0 1px 0 var(--line),0 18px 30px -20px #00000059;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility 0s .2s}.nav-links.is-open{visibility:visible;opacity:1;transform:none;transition:opacity .2s ease,transform .2s ease}.nav-links a{padding:14px 0;font-size:var(--step-1);color:var(--ink);border-bottom:1px solid var(--line)}}.hero{position:relative;min-height:100svh;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center}.hero-scene{position:absolute;inset:0 calc(50% - 50vw);z-index:0}.hero-scene-hint{position:absolute;right:var(--gutter);bottom:28px;font-size:var(--step--1);color:var(--ink-soft);pointer-events:none}.hero-copy{position:relative;z-index:1;max-width:34rem;padding:120px 0 80px;pointer-events:none}.hero-copy a{pointer-events:auto}.hero-title{font-size:var(--step-5);font-weight:800;letter-spacing:-.035em;line-height:.92;font-variation-settings:"wdth" 85}.hero-lede{margin-top:28px;font-size:var(--step-1);line-height:1.45;max-width:30ch}.hero-meta{margin-top:14px;max-width:34ch;color:var(--ink-soft)}.hero-actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}@media (max-width: 899px){.hero{flex-direction:column;align-items:stretch;min-height:auto}.hero-copy{order:-1;padding:110px 0 0}.hero-scene{position:relative;inset:auto;height:min(78vw,440px);margin:8px calc(var(--gutter) * -1) 0}.hero-scene-hint{display:none}}.section{max-width:var(--max);margin:0 auto;padding:clamp(72px,10vw,128px) var(--gutter) 0}.section--tight{padding-top:clamp(56px,7vw,88px)}.section-head{max-width:40rem;margin-bottom:40px}.section-head h2,.about h2,.contact h2{font-size:var(--step-4);font-weight:750;letter-spacing:-.02em}.section-head p{margin-top:14px;color:var(--ink-soft)}.section--tight .section-head h2{font-size:var(--step-3)}.projects{display:grid;gap:clamp(64px,9vw,112px)}.project{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}.project:nth-child(2n) .project-visual{order:2}.project-visual{position:relative}.project-visual:before{content:"";position:absolute;top:12%;right:6%;bottom:2%;left:6%;border-radius:28px;background:var(--accent);opacity:.18}.pane-preview{position:relative;width:100%;height:auto}.project-kind{font-weight:600;color:var(--accent);filter:saturate(1.1) brightness(.85)}:root[data-theme=dark] .project-kind{filter:brightness(1.25)}.project h3{margin-top:6px;font-size:var(--step-3);font-weight:750;letter-spacing:-.015em}.project-summary{margin-top:14px;max-width:60ch}.project-points{margin:16px 0 0;padding-left:1.1em;color:var(--ink-soft);display:grid;gap:6px}.tags{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tags li{padding:4px 12px;border-radius:var(--r-md);border:1px solid var(--line);font-size:var(--step--1);font-weight:500}.project-links{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:20px}.project-note{color:var(--ink-soft);font-size:var(--step--1)}@media (max-width: 860px){.project{grid-template-columns:1fr}.project:nth-child(2n) .project-visual{order:0}}.collab-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));border-top:2px solid var(--ink)}.collab{padding:22px 24px 26px 0;border-bottom:1px solid var(--line)}.collab-role{font-size:var(--step--1);color:var(--ink-soft)}.collab h3{margin:6px 0 10px;font-size:var(--step-1)}.collab-stack{margin-top:10px;font-size:var(--step--1);color:var(--ink-soft)}.table-wrap{overflow-x:auto}.archive{width:100%;border-collapse:collapse;min-width:620px}.archive th,.archive td{text-align:left;padding:14px 16px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}.archive thead th{font-size:var(--step--1);font-weight:600;color:var(--ink-soft);border-bottom:2px solid var(--ink)}.archive tbody th{font-weight:600;white-space:nowrap}.archive-stack{color:var(--ink-soft);font-size:.95rem}.archive-link{text-align:right;white-space:nowrap}.about{display:grid;grid-template-columns:minmax(180px,300px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}.about-photo{width:100%;height:auto;border-radius:24px;background:var(--surface)}.about p{margin-top:16px;max-width:62ch}@media (max-width: 680px){.about{grid-template-columns:1fr}.about-photo{max-width:220px}}.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}.timeline>li{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;padding:0 0 40px 28px}.timeline>li:before{content:"";position:absolute;left:-8px;top:6px;width:14px;height:14px;border-radius:30%;background:var(--bg);border:3px solid var(--cobalt)}.timeline>li:first-child:before{background:var(--amber);border-color:var(--amber)}.timeline-when{font-weight:600;color:var(--ink-soft)}.timeline h3{font-size:var(--step-1)}.timeline-where{margin:4px 0 8px;color:var(--ink-soft)}@media (max-width: 600px){.timeline>li{grid-template-columns:1fr;gap:4px}}.skills{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px 40px}.skills dt{font:700 var(--step-1) var(--font-display)}.skills dd{margin:8px 0 0;color:var(--ink-soft)}.skills-more{margin-top:36px}.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,80px);padding-bottom:clamp(72px,10vw,120px)}.contact-intro p{margin-top:16px;max-width:44ch;color:var(--ink-soft)}.contact-form{display:grid;gap:18px}.contact-form label{display:grid;gap:6px;font-weight:600}.contact-form input,.contact-form textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--cobalt);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--cobalt) 25%,transparent)}.contact-submit{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.form-status{color:var(--ink-soft)}@media (max-width: 760px){.contact{grid-template-columns:1fr}}.footer{max-width:var(--max);margin:0 auto;padding:28px var(--gutter) 40px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;color:var(--ink-soft)}.footer ul{list-style:none;margin:0;padding:0;display:flex;gap:24px}.footer a{text-decoration:none;font-weight:500}.footer a:hover{color:var(--ink);text-decoration:underline}@media (max-width: 640px){.archive{min-width:0}.archive thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.archive,.archive tbody,.archive tr,.archive th,.archive td{display:block}.archive tr{padding:14px 0;border-bottom:1px solid var(--line)}.archive th,.archive td{padding:2px 0;border:0;text-align:left}.archive-link{text-align:left;padding-top:6px}}:root[data-theme=dark] .nav-brand img{filter:invert(1)}.nav-links a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--cobalt);text-decoration-thickness:3px;text-underline-offset:8px}.page-loading{min-height:100vh}.page-header{max-width:var(--max);margin:0 auto;padding:clamp(120px,16vw,168px) var(--gutter) 0}.page-header h1{font-size:clamp(2.8rem,7vw,5.2rem);font-weight:800;letter-spacing:-.03em;line-height:.95;font-variation-settings:"wdth" 85}.page-header-lede{margin-top:22px;max-width:56ch;font-size:var(--step-1);line-height:1.45;color:var(--ink-soft)}.page-header-lede .hero-actions{margin-top:26px}.section--flush{padding-top:clamp(32px,4vw,48px)}.section-head--split{max-width:none;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}.section-head--split>div{max-width:40rem}.project-visual{display:block}.project h3 a,.card h3 a{text-decoration:none}.project h3 a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter{min-height:40px;padding:0 16px;border-radius:var(--r-md);border:1.5px solid var(--line);background:transparent;color:var(--ink);font:500 .95rem var(--font-body);cursor:pointer}.filter:hover{border-color:var(--ink)}.filter[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:40px 28px}.card{position:relative}.card-visual{position:relative;margin-bottom:14px}.card-visual:before{content:"";position:absolute;top:14%;right:4%;bottom:0;left:4%;border-radius:20px;background:var(--accent);opacity:.16;transition:opacity .2s ease}.card:hover .card-visual:before{opacity:.3}.card h3{margin-top:4px;font-size:var(--step-2)}.card-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.card-link:focus-visible{outline:none}.card:has(.card-link:focus-visible){outline:3px solid var(--focus);outline-offset:6px;border-radius:12px}.card-summary{margin-top:8px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-stack{margin-top:10px;font-size:var(--step--1);font-weight:500}.crumbs{margin-bottom:18px;color:var(--ink-soft)}.crumbs a{color:inherit;text-underline-offset:3px}.detail-header .project-kind{margin-bottom:8px}.detail-visual{position:relative;max-width:980px}.detail-visual:before{content:"";position:absolute;top:10%;right:3%;bottom:0;left:3%;border-radius:32px;background:var(--accent);opacity:.18}.detail-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(32px,6vw,80px)}.detail-body h2,.detail-subhead{font-size:var(--step-3);margin-bottom:18px}.detail-points{margin:0;padding-left:1.2em;display:grid;gap:12px;font-size:1.1rem}.detail-facts dl{margin:0;border-top:2px solid var(--ink)}.detail-facts dl>div{padding:14px 0;border-bottom:1px solid var(--line)}.detail-facts dt{font-size:var(--step--1);color:var(--ink-soft)}.detail-facts dd{margin:4px 0 0;font-weight:500}.detail-facts .tags{margin-top:8px}.detail-links{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}.gallery figure{margin:0}.gallery img{width:100%;height:auto;border-radius:14px;border:1px solid var(--line)}.gallery figcaption{margin-top:8px;font-size:var(--step--1);color:var(--ink-soft)}.pager{display:flex;justify-content:space-between;gap:16px}.pager-link{display:grid;gap:2px;font:700 var(--step-1) var(--font-display);text-decoration:none}.pager-link span{font:500 var(--step--1) var(--font-body);color:var(--ink-soft)}.pager-link:hover{color:var(--cobalt)}.pager-link--next{text-align:right}@media (max-width: 760px){.detail-body{grid-template-columns:1fr}}.band{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding:clamp(28px,5vw,56px);border-radius:28px;background:var(--ink);color:var(--bg)}.band h2{font-size:var(--step-4);letter-spacing:-.02em}.band p{margin-top:10px;max-width:46ch;opacity:.8}.band-actions{display:flex;flex-wrap:wrap;gap:12px}.band .btn--ghost{border-color:var(--bg);color:var(--bg)}.band .btn--ghost:hover{background:var(--bg);color:var(--ink)}main>:last-child.section,main>*>:last-child.section{padding-bottom:clamp(72px,10vw,120px)}.about-text p+p{margin-top:16px}.timeline-points{margin:8px 0 0;padding-left:1.1em;display:grid;gap:6px;max-width:70ch}.timeline-points li{padding:0;display:list-item}.timeline-points li:before{content:none}.practices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0 40px;border-top:2px solid var(--ink)}.practices li{padding:20px 0;border-bottom:1px solid var(--line)}.practices h3{font-size:var(--step-1)}.practices p{margin-top:6px;color:var(--ink-soft)}.edu{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(32px,6vw,80px)}.edu h2{font-size:var(--step-3);margin-bottom:16px}.edu-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.edu-list li{padding:16px 0;border-bottom:1px solid var(--line)}.edu-list h3{font-size:var(--step-1)}.edu-list p{margin-top:4px}.edu-when{color:var(--ink-soft);font-size:var(--step--1)}@media (max-width: 760px){.edu{grid-template-columns:1fr}}.resume-frame{width:100%;height:min(1200px,85vh);border:1px solid var(--line);border-radius:14px;background:#fff}.resume-fallback{margin-top:12px;color:var(--ink-soft);font-size:var(--step--1)}.contact{padding-top:clamp(120px,16vw,168px)}.contact h1{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:800;letter-spacing:-.03em;line-height:.98;font-variation-settings:"wdth" 85}.card-grid--wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr))}:root{--green: #13a35b}:root[data-theme=dark]{--green: #3ddc84}.availability{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--ink);font-size:.95rem;font-weight:500;margin-bottom:22px}.availability-dot{width:9px;height:9px;border-radius:3px;background:var(--green);box-shadow:0 0 color-mix(in srgb,var(--green) 60%,transparent);animation:pulse 2.4s ease-out infinite}@keyframes pulse{70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: reduce){.availability-dot{animation:none}}.band .availability{color:var(--bg);background:color-mix(in srgb,var(--green) 22%,transparent)}.page-header-lede .availability{margin-bottom:18px}.nav-links a.nav-cta{padding:8px 16px;border-radius:var(--r-md);background:var(--cobalt);color:var(--cobalt-ink);font-weight:600;text-decoration:none}.nav-links a.nav-cta:hover{background:color-mix(in srgb,var(--cobalt) 86%,var(--ink));color:var(--cobalt-ink)}@media (max-width: 1000px) and (min-width: 761px){.nav-links{gap:18px}}@media (max-width: 760px){.nav-links a.nav-cta{margin-top:14px;text-align:center;border-bottom:0;color:var(--cobalt-ink)}}.proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:end;padding-top:0}.stats{margin:0;display:flex;flex-wrap:wrap;gap:18px 44px}.stats>div{display:flex;flex-direction:column-reverse}.stats dd{margin:0;font:800 clamp(2.4rem,5vw,3.4rem) / 1 var(--font-display);letter-spacing:-.03em}.stats dt{margin-top:6px;color:var(--ink-soft);font-size:.95rem;max-width:14ch}.clients h2{font:600 .95rem var(--font-body);color:var(--ink-soft);margin-bottom:12px}.clients ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}.clients li{font:700 var(--step-1) var(--font-display);letter-spacing:-.01em;color:color-mix(in srgb,var(--ink) 78%,var(--bg))}@media (max-width: 860px){.proof{grid-template-columns:1fr;padding-top:40px}}.services{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:0 40px;border-top:2px solid var(--ink)}.services li{padding:22px 0 24px;border-bottom:1px solid var(--line)}.services h3{font-size:var(--step-2);letter-spacing:-.01em}.services p{margin-top:8px;color:var(--ink-soft)}.service-examples{font-size:.95rem}.service-examples a{color:var(--ink);font-weight:600;text-underline-offset:3px}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:28px}.steps li{position:relative;padding-top:64px}.steps li:before{content:"";position:absolute;top:22px;left:52px;right:-20px;height:2px;background:var(--line)}.steps li:last-child:before{display:none}.step-num{position:absolute;top:0;left:0;display:grid;place-items:center;width:44px;height:44px;border-radius:3px;background:var(--ink);color:var(--bg);font:700 1.1rem var(--font-display)}.steps h3{font-size:var(--step-1)}.steps p{margin-top:6px;color:var(--ink-soft)}@media (max-width: 640px){.steps li:before{display:none}}.engagements{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}.engagements li{padding:28px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}.engagements h3{font-size:var(--step-2)}.engagement-fit{margin:10px 0 12px;font-weight:600;color:var(--cobalt)}.engagements p:last-child{color:var(--ink-soft)}.team-intro{max-width:62ch;font-size:var(--step-1);line-height:1.45}.team-roles{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}.team-roles li{padding:22px;border-radius:18px;border:1.5px solid var(--line)}.team-roles .team-lead{background:var(--ink);color:var(--bg);border-color:var(--ink)}.team-roles h3{font-size:var(--step-1)}.team-roles p{margin-top:6px;font-size:.95rem;color:var(--ink-soft)}.team-roles .team-lead p{color:inherit;opacity:.8}.team-teaser>div{padding:clamp(28px,5vw,52px);border-radius:28px;background:var(--surface);border:1px solid var(--line)}.team-teaser h2{font-size:var(--step-4);letter-spacing:-.02em;margin-bottom:16px}.team-teaser p{max-width:62ch;font-size:var(--step-1);line-height:1.45}.team-teaser-roles{margin:12px 0 20px;color:var(--ink-soft)}.quotes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:28px}.quotes blockquote{margin:0;font:500 var(--step-1) / 1.4 var(--font-display)}.quote-by{margin-top:12px;color:var(--ink-soft)}.faq{border-top:2px solid var(--ink);max-width:820px}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;font:700 var(--step-1) var(--font-display)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:400 1.8rem var(--font-body);transition:transform .2s ease}.faq details[open] summary:after{transform:translateY(-50%) rotate(45deg)}.faq details p{padding:0 0 22px;max-width:64ch;color:var(--ink-soft)}.channels{list-style:none;margin:28px 0 0;padding:0;border-top:2px solid var(--ink)}.channels li{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--line)}.channels span{color:var(--ink-soft)}.contact h2.contact-next-title{margin-top:36px;font-size:var(--step-1)}.contact-next{margin:12px 0 0;padding-left:1.3em;display:grid;gap:8px;color:var(--ink-soft)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 520px){.form-row{grid-template-columns:1fr}}.contact-form select{font:inherit;font-weight:400;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}.contact-form select:focus{border-color:var(--cobalt);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--cobalt) 25%,transparent)}.optional{font-weight:400;color:var(--ink-soft)}.contact-done{align-self:start;padding:36px;border-radius:24px;background:color-mix(in srgb,var(--green) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--green) 40%,transparent)}.contact-done h2{font-size:var(--step-3)}.contact-done p{margin:10px 0 22px}@media (max-width: 760px){.contact{grid-template-columns:minmax(0,1fr)}}.channels a{overflow-wrap:anywhere}.muted{color:var(--ink-soft)}.small{font-size:var(--step--1)}code{font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:.92em;padding:1px 6px;border-radius:6px;background:var(--surface-2)}.btn--primary{background:linear-gradient(120deg,var(--cobalt),var(--violet));color:#fff;box-shadow:0 12px 30px -10px #4c6bffb3}.btn--primary:hover{background:linear-gradient(120deg,var(--cobalt),var(--violet));box-shadow:0 16px 36px -10px #9b5cffcc}.btn--ghost{border-color:var(--line);background:var(--surface)}.btn--ghost:hover{background:var(--surface-2);color:var(--ink);border-color:var(--ink-soft)}.hint{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-sm);background:var(--amber);color:var(--on-amber);font-size:.85rem;font-weight:600;line-height:1.3;pointer-events:none}.sq-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);cursor:pointer}.sq-btn:hover{border-color:var(--ink-soft)}.chip-btn{border-radius:var(--r-sm)}.chip-btn.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.no-gl{position:absolute;inset:auto 16px 50% 16px;text-align:center;color:var(--ink-soft)}.is-grabbing,.is-grabbing canvas{cursor:grabbing!important}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;min-width:0}.panel h3{font-size:var(--step-2)}.panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.nav-links{gap:22px;align-items:center}@media (max-width: 1080px) and (min-width: 761px){.nav-links{gap:14px}.nav-links a{font-size:.95rem}}@media (max-width: 1000px){.nav-links{display:none}.nav-toggle{display:grid}.nav-links.is-open{display:flex}}@media (max-width: 1000px){.nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:8px var(--gutter) 20px;background:var(--bg);box-shadow:0 1px 0 var(--line),0 18px 30px -20px #00000059}.nav-links a{padding:14px 0;font-size:var(--step-1);color:var(--ink);border-bottom:1px solid var(--line)}}.hero{display:block;min-height:auto;max-width:none;padding:0;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:-20% -10% auto 30%;height:900px;pointer-events:none;background:radial-gradient(closest-side,rgb(76 107 255 / .3),transparent),radial-gradient(closest-side at 70% 70%,rgb(155 92 255 / .25),transparent)}.hero-inner{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(96px,12vw,120px) var(--gutter) 24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:24px}.hero-copy{position:static;max-width:none;padding:0;pointer-events:auto;display:grid;gap:20px;justify-items:start}.hero-copy .availability{margin-bottom:0}.hero-title{font-size:clamp(3.6rem,9vw,8rem);line-height:.88;letter-spacing:-.045em}.hero-lede{margin-top:0;max-width:30ch}.hero-meta{margin-top:0;max-width:40ch}.hero-actions{margin-top:6px}.stage3d{position:relative;height:560px;touch-action:pan-y;margin-inline:-40px}@media (max-width: 900px){.stage3d{margin-inline:calc(var(--gutter) * -1)}}.stage3d .hint{position:absolute;left:12px;bottom:12px}@media (max-width: 900px){.hero-inner{grid-template-columns:1fr}.stage3d{height:400px}}.proof-strip{background:var(--surface);border-block:1px solid var(--line);margin-top:24px}.proof-inner{max-width:var(--max);margin:0 auto;padding:28px var(--gutter);display:flex;flex-wrap:wrap;align-items:center;gap:22px 52px}.proof-strip .stats{gap:18px 44px}.proof-strip .clients{margin:0 0 0 auto;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 26px}.proof-strip .clients li{font:700 var(--step-1) var(--font-display);color:var(--ink-soft)}@media (max-width: 900px){.proof-strip .clients{margin-left:0}}.now{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px}.now-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px}.now-list li{display:grid;grid-template-columns:12px 1fr;gap:12px;align-items:baseline}.now-list li:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--cobalt);transform:translateY(1px)}.now-list li:first-child:before{background:var(--mint);box-shadow:0 0 10px var(--mint)}.heat-wrap{overflow-x:auto;margin-top:16px}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);gap:3px;width:max-content}.heat i{width:11px;height:11px;border-radius:3px;background:var(--surface-2)}.heat i.pad{background:transparent}.heat i[data-l="1"]{background:#233a7a}.heat i[data-l="2"]{background:#3452c2}.heat i[data-l="3"]{background:#4c6bff}.heat i[data-l="4"]{background:#9db0ff}@media (max-width: 860px){.now{grid-template-columns:1fr}}.flip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:20px}.flip{perspective:1200px;cursor:pointer;height:250px;border-radius:var(--r-lg)}.flip-inner{position:relative;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.flip.on .flip-inner{transform:rotateY(180deg)}@media (hover: hover){.flip:hover .flip-inner{transform:rotateY(180deg)}}.face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--line)}.face.front{background:var(--surface)}.face.back{transform:rotateY(180deg);background:linear-gradient(140deg,var(--c, var(--cobalt)),#241d63);color:#fff}.cube{width:54px;height:54px;border-radius:16px;margin-bottom:auto;background:linear-gradient(135deg,var(--c, var(--cobalt)),#10132a);box-shadow:0 12px 26px -8px var(--c, var(--cobalt)),inset 0 1px #ffffff40}.face h3{font-size:var(--step-2)}.face p{color:var(--ink-soft)}.face.back ul{margin:0;padding-left:1.1em;display:grid;gap:4px}.face.back .ex{margin-top:auto;font-weight:600;font-size:.92rem}.carousel{position:relative;height:470px;perspective:1600px;overflow:hidden;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}.carousel:after{content:"";position:absolute;left:6%;right:6%;bottom:22px;height:70px;border-radius:26px;background:#7f8cc80d;border:1px solid var(--line);z-index:-1}.ring{position:absolute;left:50%;top:40px;width:0;height:0;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.ring.dragging{transition:none}.c-card{position:absolute;width:400px;height:300px;left:-200px;top:0;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:0 30px 60px -20px #0009;backface-visibility:hidden;filter:brightness(.6);transition:filter .4s}.c-card.front{filter:none;box-shadow:0 30px 70px -20px #000000b3,0 0 60px -10px #4c6bff99}.c-card .vis{height:222px;display:grid;place-items:center;background:linear-gradient(160deg,var(--c),transparent 85%)}.c-card .vis canvas{width:96%;height:auto}.c-card .cap{padding:12px 18px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.c-card .cap b{font:800 1.3rem var(--font-display)}.c-card .cap span{color:var(--ink-soft);font-size:.85rem}.car-ui{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.car-detail{display:grid;gap:8px;min-width:0;max-width:46rem}.car-detail .kind{color:var(--ink-soft);font-weight:600;font-size:.9rem}.car-detail h3{font-size:var(--step-3);letter-spacing:-.02em}.car-arrows{display:flex;gap:10px}@media (max-width: 600px){.c-card{width:290px;height:236px;left:-145px}.c-card .vis{height:170px}.carousel{height:360px}}.path-box{position:relative;overflow-x:auto}.path-svg{display:block;width:100%;min-width:760px;height:auto}.path-svg .base{stroke:var(--line)}.path-svg .draw{stroke:url(#pathGrad);filter:drop-shadow(0 0 8px rgb(76 107 255 / .8));transition:stroke-dashoffset .1s linear}.path-svg .step-dot{fill:var(--surface-2);stroke:var(--line);transition:fill .3s}.path-svg .step-dot.lit{fill:#4c6bff;stroke:#4c6bff}.path-svg .num{fill:#fff;font:700 18px var(--font-display)}.path-svg .t{fill:var(--ink);font:700 24px var(--font-display)}.path-svg .d{fill:var(--ink-soft);font:400 15px var(--font-body)}:root:not([data-theme=dark]) .path-svg .step-dot:not(.lit)+.num{fill:var(--ink)}.kb-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px}.kb-stage{position:relative;height:440px;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:radial-gradient(70% 70% at 50% 60%,rgb(76 107 255 / .22),transparent),#12152a}.kb-stage .hint{position:absolute;left:14px;top:14px}.skill-card{display:grid;gap:14px;align-content:start}.key-cap{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;color:#fff;font:800 1.6rem var(--font-display);box-shadow:0 14px 30px -10px var(--cobalt)}.skill-card h3{font-size:var(--step-3);letter-spacing:-.02em}.kv{display:grid;grid-template-columns:7rem 1fr;gap:6px 12px;margin:0;font-size:.95rem}.kv dt{color:var(--ink-soft)}.kv dd{margin:0}.kv a{color:inherit;font-weight:600;text-underline-offset:3px}@media (max-width: 900px){.kb-grid{grid-template-columns:1fr}.kb-stage{height:340px}}.pit{position:relative;height:440px;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--bg));touch-action:pan-y}.pit .filters{position:absolute;top:16px;left:16px;right:16px;z-index:3}.pit .hint{position:absolute;right:16px;bottom:16px;z-index:3}.blk{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:14px;white-space:nowrap;color:#eef0f8;font:700 1.05rem var(--font-display);background:linear-gradient(140deg,#2b3157,#151832);border:1px solid rgb(255 255 255 / .14);box-shadow:0 16px 26px -10px #0009,inset 0 1px #ffffff26;cursor:grab;-webkit-user-select:none;user-select:none;transition:opacity .3s,filter .3s;will-change:transform;visibility:hidden}.pit.ready .blk{visibility:visible}.blk i{width:9px;height:9px;border-radius:3px;background:var(--c)}.blk.dim{opacity:.25;filter:grayscale(1)}.blk.hl{background:linear-gradient(140deg,#4c6bff,#9b5cff)}.pit-tip{position:absolute;z-index:4;pointer-events:none;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:12px;font-size:.85rem;max-width:240px;box-shadow:0 12px 24px -8px #0009}.globe-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}.globe-stage{position:relative;height:480px;cursor:grab;touch-action:pan-y}.globe-stage .hint{position:absolute;left:0;bottom:6px}.cities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.tz-out{display:grid;gap:6px}.tz-out b{font:800 2.2rem var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}@media (max-width: 900px){.globe-grid{grid-template-columns:1fr}.globe-stage{height:360px}}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:32px;align-items:start}.badge-stage{position:sticky;top:96px;height:580px;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:radial-gradient(60% 50% at 50% 40%,rgb(155 92 255 / .25),transparent),#12152a;touch-action:pan-y}.badge-stage .hint{position:absolute;left:14px;bottom:14px}.badge-fallback{width:60%;margin:60px auto;border-radius:24px}.about-text{display:grid;gap:16px}.about-text a{font-weight:600;text-underline-offset:3px}.about-lede{font-size:var(--step-1);line-height:1.45}.jobs{display:grid;gap:16px;margin-top:10px}.job{padding:24px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);display:grid;gap:8px}.job .when{justify-self:start;padding:4px 10px;border-radius:8px;font-size:.85rem;font-weight:600;background:#4c6bff29}.job .when--now{background:#ffb01f2e}.job h3{font-size:var(--step-3);letter-spacing:-.02em}.job .role{color:var(--ink-soft)}.job ul{margin:4px 0 0;padding-left:1.1em;color:var(--ink-soft);display:grid;gap:4px;font-size:.95rem}@media (max-width: 900px){.about-grid{grid-template-columns:1fr}.badge-stage{position:relative;top:0;height:460px}}.term-scene{perspective:1400px}.term{max-width:920px;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;background:#0a0c18;color:#eef0f8;border:1px solid #2c3150;box-shadow:0 40px 80px -30px #000000b3,0 0 0 10px var(--surface-2);transform:rotateX(var(--rx, 4deg)) rotateY(var(--ry, 0deg));transition:transform .3s ease-out}.term-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#171a2e;border-bottom:1px solid #2c3150}.term-bar i{width:11px;height:11px;border-radius:3px}.term-bar span{margin-left:8px;font:.85rem IBM Plex Mono,monospace;color:#9ba3c0}.term-body{height:340px;overflow-y:auto;padding:18px;font:400 .95rem/1.6 IBM Plex Mono,ui-monospace,monospace}.term-body .out{white-space:pre-wrap;color:#9ba3c0}.term-body .cmd{color:#eef0f8}.term-body .cmd:before{content:"ashish@portfolio:~$ ";color:#3ddc97}.term-body .accent{color:#ffb01f}.term-in{display:flex;gap:8px;align-items:center;padding:0 18px 16px;font-family:IBM Plex Mono,monospace}.term-in label{color:#3ddc97;white-space:nowrap;font-size:.95rem}.term-in input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:#eef0f8;font:inherit;font-size:.95rem;caret-color:#ffb01f}.term-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}@media (max-width: 520px){.term-in label{display:none}}.tilt{position:relative;transform:perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .2s ease-out}.tilt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(240px circle at var(--gx, 50%) var(--gy, 50%),rgb(255 255 255 / .12),transparent 60%);opacity:var(--go, 0);transition:opacity .2s}.card.tilt{padding:0}.practices li.tilt{padding-inline:12px;border-radius:var(--r-md)}.explore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.explore-card{display:grid;gap:6px;padding:24px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-decoration:none}.explore-card b{font:700 var(--step-2) var(--font-display)}.explore-card span{color:var(--ink-soft)}.explore-card:hover{border-color:var(--cobalt)}.notes-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px}.note-card{padding:26px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);display:grid;gap:10px;align-content:start}.note-card a{display:grid;gap:10px;text-decoration:none}.note-card--planned{border-style:dashed}.note-card h3{font-size:var(--step-2)}.note-card p{color:var(--ink-soft);font-size:.95rem}.note-card .tag{justify-self:start;border-radius:8px}.note-meta{display:flex;justify-content:space-between;gap:8px;margin-top:6px;color:var(--ink-soft);font-size:.85rem}.contact{position:relative}.plane{position:absolute;right:var(--gutter);top:clamp(96px,12vw,130px);width:110px;pointer-events:none;animation:bob 4s ease-in-out infinite;transition:transform 1.4s cubic-bezier(.5,0,.3,1),opacity 1.4s;filter:drop-shadow(0 18px 20px rgb(0 0 0 / .35))}.plane.fly{animation:none;transform:translate(420px,-360px) rotate(-18deg) scale(.6);opacity:0}.band{position:relative;overflow:hidden;background:radial-gradient(60% 90% at 85% 10%,rgb(155 92 255 / .45),transparent),linear-gradient(140deg,#241d63,#0e1020);color:#eef0f8;border:1px solid rgb(155 92 255 / .35)}.band .plane--band{top:24px;right:28px;width:90px;opacity:.9}.band>div{position:relative}.band .btn--ghost{background:transparent;border-color:#eef0f866;color:#eef0f8}.band .btn--ghost:hover{background:#eef0f81a;color:#eef0f8}.band .availability{color:#eef0f8}@keyframes bob{50%{transform:translateY(-10px) rotate(-3deg)}}@media (max-width: 760px){.plane{width:70px}.band .plane--band{display:none}}@media (prefers-reduced-motion: reduce){.plane{animation:none}.flip-inner,.ring,.tilt,.term{transition:none}}
