:root{--background:#ffffff;--surface:#f7f8fa;--foreground:#16181d;--secondary:#667085;--accent:#1061a9;--soft-accent:#f2f7fb;--border:#e4e7ec}html[data-theme=dark]{--background:#121212;--surface:#171717;--foreground:#e7e7e7;--secondary:#9a9a9a;--accent:#4e9ee6;--soft-accent:#1b2630;--border:#303030}*{box-sizing:border-box}body,html{background:var(--background)}body{margin:0;color:var(--foreground);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}main{width:min(calc(100% - 4rem),76rem);margin-inline:auto;min-height:100svh;padding:2rem 0;display:flex;flex-direction:column}.site-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.header-meta,.work-header-meta{display:flex;align-items:baseline;gap:1.5rem}.links a,.name{color:inherit;text-decoration:none}.name{font-size:1rem;font-weight:600;letter-spacing:-.03em}.current,.links,.metadata{font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}.metadata{margin:0;color:var(--accent)}.language-switcher{color:var(--secondary);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}.language-switcher a{color:inherit;text-decoration:none}.language-switcher [aria-current=page]{color:var(--foreground)}.language-switcher a:focus-visible,.language-switcher a:hover{color:var(--accent)}.theme-toggle{width:1.5rem;height:1.5rem;padding:0;color:var(--secondary);border:0;background:transparent;font:1rem/1 Inter,Arial,sans-serif;cursor:pointer}.theme-toggle:focus-visible,.theme-toggle:hover{color:var(--accent)}.theme-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.intro{max-width:76rem;margin:0;padding:clamp(5rem,9vh,8rem) 0 8rem}.hero-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(12rem,.9fr);align-items:center;grid-gap:clamp(2rem,6vw,6rem);gap:clamp(2rem,6vw,6rem)}.hero-portrait{position:relative;width:100%;max-width:21rem;margin:0;justify-self:end}.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:3/4;border-radius:18px;object-fit:cover}main[data-home-motion]{--hero-scroll-progress:0}main[data-home-motion=ready] .home-reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}main[data-home-motion=ready] .home-reveal.is-revealed{opacity:1;transform:translateZ(0)}main[data-home-motion=ready] .hero-motion-title{transform:translate3d(0,calc(var(--hero-scroll-progress) * -14px),0);will-change:transform}main[data-home-motion=ready] .hero-motion-portrait{transform:translate3d(0,calc(var(--hero-scroll-progress) * -8px),0);will-change:transform}main[data-home-motion=ready] .hero-motion-secondary{transform:translate3d(0,calc(var(--hero-scroll-progress) * -4px),0);will-change:transform}main[data-home-motion=ready] .how-work .micro-illustration,main[data-home-motion=ready] .practice .micro-illustration{transform:translate3d(0,calc(var(--hero-scroll-progress) * -2px),0)}h1{margin:0;font-size:clamp(2.3rem,5.8vw,6.15rem);font-weight:500;line-height:.98;letter-spacing:-.065em;white-space:pre-line}.summary{max-width:36rem;margin:2.5rem 0 0;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.45;letter-spacing:-.02em}.current{margin:2.5rem 0 0;color:var(--secondary);font-size:.75rem;font-weight:500;letter-spacing:.045em;line-height:1.65}.current span{color:var(--accent)}.current a{color:inherit;text-decoration:none;border-bottom:1px solid}.current a:focus-visible,.current a:hover{color:var(--accent)}.practice{max-width:76rem;padding:clamp(7rem,14vw,13rem) 0}.practice h2{max-width:52rem;margin:0;font-size:clamp(2rem,4vw,4.5rem);font-weight:500;line-height:1;letter-spacing:-.06em;white-space:pre-line}.practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:3rem;gap:3rem;margin-top:clamp(4rem,8vw,7rem)}.practice-grid h3{margin:0 0 1rem;color:var(--accent);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;font-weight:500;letter-spacing:.06em}.practice-grid p{max-width:17rem;margin:0;font-size:1rem;line-height:1.45;letter-spacing:-.015em}.section-label{margin:0 0 1.5rem;color:var(--accent);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;font-weight:500;letter-spacing:.06em}.experience-section{max-width:76rem;padding:0 0 clamp(7rem,12vw,11rem)}.experience-section h2{max-width:42rem;margin:0;font-size:clamp(1.75rem,3.5vw,3.5rem);font-weight:500;line-height:1;letter-spacing:-.055em}.experience-list{margin-top:clamp(3.5rem,7vw,6rem)}.experience-list article{display:grid;grid-template-columns:8rem minmax(0,1fr) minmax(13rem,16rem);grid-gap:1.5rem;gap:1.5rem;align-items:start;padding:1.5rem 0;border-top:1px solid var(--border)}.experience-list article:last-child{border-bottom:1px solid var(--border)}.experience-list p{margin:0}.experience-area,.experience-period{color:var(--secondary);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em;line-height:1.5}.experience-company{color:inherit;font-size:1rem;font-weight:600;letter-spacing:-.02em;text-decoration:none}.experience-company:focus-visible,.experience-company:hover{color:var(--accent)}.experience-role{margin-top:.5rem!important;font-size:.9375rem;letter-spacing:-.015em}.how-work{max-width:76rem;padding:0 0 clamp(7rem,12vw,11rem)}.how-work .micro-illustration{margin:2rem 0 0}.how-work h2{max-width:32rem;margin:0;font-size:clamp(1.75rem,3.5vw,3.5rem);font-weight:500;line-height:1;letter-spacing:-.055em}.how-work p:not(.section-label){max-width:32rem;margin:1.5rem 0 0;color:var(--secondary);font-size:1rem;line-height:1.5;letter-spacing:-.015em}.notes{padding:0 0 clamp(7rem,12vw,11rem)}.notes h2{max-width:38rem;margin:0;font-size:clamp(2.15rem,4vw,4.35rem);font-weight:500;line-height:1;letter-spacing:-.055em}.notes nav{max-width:48rem;margin-top:clamp(3.5rem,7vw,6rem)}.notes nav a{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 0;color:inherit;border-top:1px solid var(--border);font-size:clamp(1.2rem,1.75vw,1.625rem);letter-spacing:-.03em;text-decoration:none}.notes nav a:last-child{border-bottom:1px solid var(--border)}.notes nav a:focus-visible,.notes nav a:hover{color:var(--accent)}.contact{max-width:48rem;padding:clamp(4.5rem,8vw,7rem) 0 1rem}.contact h2{margin:0;font-size:clamp(2.25rem,4.5vw,4.75rem);font-weight:500;line-height:.98;letter-spacing:-.06em}.contact>p{max-width:32rem;margin:2rem 0 0;color:var(--secondary);font-size:1rem;line-height:1.45;letter-spacing:-.015em}.contact .links{margin-top:3rem}.work-link{display:inline-block;margin-top:1.5rem;color:inherit;font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid}.work-link:focus-visible,.work-link:hover{color:var(--accent)}.note-article{max-width:46.5rem;padding:clamp(5rem,10vw,9rem) 0}.note-back,.note-home{color:inherit;font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid}.note-back:focus-visible,.note-back:hover,.note-home:focus-visible,.note-home:hover{color:var(--accent)}.note-article>header{padding:4rem 0 6rem}.note-article h1{max-width:44rem;margin:0;font-size:clamp(2.75rem,5.2vw,5.75rem);font-weight:500;line-height:.98;letter-spacing:-.065em}.note-meta{margin:2rem 0 0;color:var(--secondary);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}.note-body section+section{margin-top:4.5rem}.note-body h2{margin:0 0 1.5rem;font-size:clamp(1.5rem,2.5vw,2.15rem);font-weight:500;line-height:1.1;letter-spacing:-.04em}.note-body p{max-width:44rem;margin:0;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.6;letter-spacing:-.018em}.note-body p+p{margin-top:1.25rem}.note-body blockquote{margin:2rem 0 0;padding:1.25rem 0 1.25rem 1.5rem;border-left:1px solid var(--accent);color:var(--secondary);font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.55;letter-spacing:-.018em}.note-home{display:inline-block;margin-top:clamp(5rem,10vw,8rem)}.articles-page{max-width:48rem;padding:clamp(5rem,10vw,9rem) 0}.articles-page h1{margin:0;font-size:clamp(2.75rem,5.2vw,5.75rem);font-weight:500;line-height:.98;letter-spacing:-.065em}.articles-page nav{margin-top:clamp(3.5rem,7vw,6rem)}.articles-page nav a{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 0;color:inherit;border-top:1px solid var(--border);font-size:clamp(1.2rem,1.75vw,1.625rem);letter-spacing:-.03em;text-decoration:none}.articles-page nav a:last-child{border-bottom:1px solid var(--border)}.articles-page nav a:focus-visible,.articles-page nav a:hover{color:var(--accent)}.spotify-now-playing{max-width:24rem;padding:0 0 clamp(4.5rem,8vw,7rem)}.hero-spotify .spotify-now-playing{padding:1.5rem 0 0}.spotify-now-playing .section-label{margin-bottom:1rem}.listening-dot{display:inline-block;margin-right:.45rem;color:var(--accent);animation:listening-pulse 2.5s ease-in-out infinite}.spotify-track{display:flex;align-items:center;gap:.875rem;min-width:0}.spotify-track img{width:2.5rem;height:2.5rem;flex:0 0 auto;border-radius:3px;object-fit:cover}.spotify-track div{min-width:0}.spotify-track a,.spotify-track p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-track a{color:inherit;font-size:.9375rem;font-weight:500;letter-spacing:-.015em;text-decoration:none}.spotify-track a:focus-visible,.spotify-track a:hover{color:var(--accent)}.spotify-track p{margin:.25rem 0 0;color:var(--secondary);font-size:.8125rem;letter-spacing:-.01em}@keyframes listening-pulse{0%,to{opacity:.45}50%{opacity:1}}.micro-illustration{display:block;width:min(100%,11.25rem);height:auto;margin:0 0 1.5rem;color:var(--secondary);stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;--pointer-x:0;--pointer-y:0}.micro-illustration .accent-fill{fill:var(--accent);stroke:var(--accent)}.product-interaction,.systems-interaction{transform-box:fill-box;transform-origin:center;transition:transform .35s ease-out}.product-illustration:hover .product-interaction{transform:translate(calc(var(--pointer-x) * 8px),calc(var(--pointer-y) * 4px))}.systems-illustration:hover .systems-interaction{transform:translate(calc(var(--pointer-x) * 7px))}.systems-illustration:hover .systems-link{stroke-dasharray:2 3}.experience-illustration:hover .experience-path{transform:translateY(calc(var(--pointer-y) * 5px));transition:transform .35s ease-out}.experience-illustration:hover .experience-node{transform:translate(calc(var(--pointer-x) * 4px),calc(var(--pointer-y) * 3px))}.ai-illustration:hover .ai-path{transform:translateY(calc(var(--pointer-y) * 5px));transition:transform .35s ease-out}.ai-illustration:hover .ai-node{transform:translate(calc(var(--pointer-x) * 4px),calc(var(--pointer-y) * 4px)) scale(1.15)}.product-block{animation:product-shift 6s ease-in-out infinite}.systems-piece{animation:systems-pulse 5s ease-in-out infinite;transform-origin:center}.systems-link{stroke-dasharray:4 4;animation:systems-connect 6s linear infinite}.ai-path{stroke-dasharray:3 4;animation:ai-trace 7s linear infinite}.ai-path-two{animation-delay:-2.33s}.ai-path-three{animation-delay:-4.66s}.ai-node{fill:var(--accent);stroke:var(--accent);animation:ai-arrive 7s ease-in-out infinite;transform-origin:center}@keyframes product-shift{0%,to{transform:translateX(0)}50%{transform:translateX(-10px)}}@keyframes systems-pulse{0%,to{transform:scale(1)}50%{transform:scale(.88)}}@keyframes systems-connect{to{stroke-dashoffset:-32}}@keyframes ai-trace{to{stroke-dashoffset:-42}}@keyframes ai-arrive{0%,70%,to{transform:scale(1);opacity:1}78%{transform:scale(1.45);opacity:.75}}@media (prefers-reduced-motion:reduce){main[data-home-motion] .hero-motion-portrait,main[data-home-motion] .hero-motion-secondary,main[data-home-motion] .hero-motion-title,main[data-home-motion] .home-reveal,main[data-home-motion] .micro-illustration{opacity:1!important;transition:none!important;transform:none!important}.listening-dot,.micro-illustration,.micro-illustration *{animation:none!important;transition:none!important;transform:none!important}}.links{display:flex;gap:1.5rem}.links a{border-bottom:1px solid;padding-bottom:.25rem}.links a:focus-visible,.links a:hover{color:var(--accent)}.work-main{width:min(calc(100% - 4rem),76rem);min-height:100svh;margin-inline:auto;padding:2rem 0}.work-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.work-access{max-width:42rem;padding:clamp(8rem,16vh,13rem) 0}.work-access h1,.work-index h1{margin:0;font-size:clamp(2.75rem,5.5vw,6rem);font-weight:500;line-height:.98;letter-spacing:-.065em}.work-access>p:not(.section-label){max-width:32rem;margin:2rem 0 0;font-size:1.125rem;line-height:1.45;letter-spacing:-.02em}.work-access-form{margin-top:3.5rem}.work-access-form label{display:block;margin-bottom:.75rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}.work-access-form div{display:flex;gap:.75rem;max-width:28rem}.work-access-form input{min-width:0;flex:1 1;padding:.75rem 0;color:inherit;border:0;border-bottom:1px solid var(--secondary);outline:0;background:transparent;font:inherit}.work-access-form input:focus{border-color:var(--accent)}.work-access-form button{padding:.75rem 0;color:inherit;border:0;border-bottom:1px solid;background:transparent;font:inherit;cursor:pointer}.work-access-form button:focus-visible,.work-access-form button:hover{color:var(--accent)}.work-access-form>p{color:var(--accent);font-size:.8rem}.work-index{padding:clamp(7rem,13vw,11rem) 0}.work-index>div{margin-top:clamp(4rem,8vw,7rem)}.work-index article{display:grid;grid-template-columns:5rem minmax(0,1fr) 15rem auto;grid-gap:1.5rem;gap:1.5rem;align-items:start;padding:2rem 0;border-top:1px solid var(--border)}.work-index article:last-child{border-bottom:1px solid var(--border)}.work-index article h2,.work-index article p{margin:0}.work-index article h2{font-size:1rem;letter-spacing:-.02em}.work-index article>p{font-size:1.125rem;line-height:1.4;letter-spacing:-.02em}.work-index small{font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.04em}.case-back,.case-next,.work-index a{color:inherit;text-decoration:none;border-bottom:1px solid}.case-back:focus-visible,.case-back:hover,.case-next:focus-visible,.case-next:hover,.work-index a:focus-visible,.work-index a:hover{color:var(--accent)}.case-page{max-width:52rem;padding:clamp(5rem,10vw,9rem) 0}.case-back{font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.05em}.case-intro{padding:5rem 0 8rem}.case-intro h1{max-width:48rem;margin:0;font-size:clamp(2.75rem,5.2vw,5.75rem);font-weight:500;line-height:.98;letter-spacing:-.065em}.case-intro>p:last-child{margin:2rem 0 0;font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}.case-page section{padding:0 0 6rem}.case-page h2{margin:0 0 1.5rem;color:var(--accent);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;font-weight:500;letter-spacing:.06em}.case-page section>p{max-width:36rem;margin:0;font-size:1.125rem;line-height:1.5;letter-spacing:-.02em}.decision{padding:2rem 0;border-top:1px solid var(--border)}.decision h3,.decision>p{margin:0 0 1rem}.decision h3{max-width:38rem;font-size:clamp(1.35rem,2.1vw,1.75rem);font-weight:500;line-height:1.15;letter-spacing:-.035em}.case-copy{max-width:36rem}.case-copy p+p{margin-top:1.25rem}.role-list{max-width:36rem;margin:1.5rem 0 0;padding:0;list-style:none;column-count:2;column-gap:2rem}.role-list li{page-break-inside:avoid;break-inside:avoid;padding:.55rem 0;border-top:1px solid var(--border);font-size:1rem;line-height:1.35;letter-spacing:-.015em}.artifact-placeholder{display:grid;min-height:12rem;margin-top:2rem;place-content:center;grid-gap:.75rem;gap:.75rem;padding:2rem;border:1px solid var(--border);color:var(--secondary);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em;text-align:center}.artifact-placeholder span:first-child{color:var(--accent)}.case-artifact{margin:2rem 0 0}.case-artifact img{display:block;width:100%;height:auto}.case-artifact figcaption{margin-top:.75rem;color:var(--secondary);font-size:.8125rem;line-height:1.5}.build-flow{display:flex;flex-wrap:wrap;gap:.5rem;max-width:42rem;margin:2rem 0;padding:0;list-style:none}.build-flow li{display:flex;align-items:center;gap:.5rem;color:var(--secondary);font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.04em}.build-flow li:not(:last-child):after{color:var(--accent);content:"→"}.build-flow span{color:var(--accent)}.case-next{display:inline-block;margin-top:2rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.6875rem;letter-spacing:.06em}@media (max-width:600px){main[data-home-motion=ready] .home-reveal{transform:translate3d(0,12px,0)}main[data-home-motion=ready] .home-reveal.is-revealed{transform:translateZ(0)}main[data-home-motion=ready] .hero-motion-title{transform:translate3d(0,calc(var(--hero-scroll-progress) * -6px),0)}main[data-home-motion=ready] .hero-motion-portrait{transform:translate3d(0,calc(var(--hero-scroll-progress) * -4px),0)}main[data-home-motion=ready] .hero-motion-secondary{transform:translate3d(0,calc(var(--hero-scroll-progress) * -2px),0)}main{width:min(calc(100% - 2.5rem),76rem);padding:1.25rem 0}.site-header{align-items:flex-start;flex-direction:column;gap:.5rem}.header-meta{width:100%;justify-content:space-between}.intro{padding:5rem 0 6rem}.hero-layout{grid-template-columns:1fr;gap:3rem}.hero-portrait{width:min(70%,20rem);justify-self:start}h1{font-size:clamp(2.25rem,11vw,3.5rem)}.practice{padding:6rem 0 8rem}.practice h2{font-size:clamp(2rem,10vw,3rem)}.practice-grid{grid-template-columns:1fr;gap:3rem;margin-top:4rem}.experience-section,.how-work{padding-bottom:6rem}.experience-list{margin-top:3rem}.experience-list article{grid-template-columns:1fr;gap:.65rem;padding:1.25rem 0}.notes{padding-bottom:8rem}.notes nav{margin-top:3rem}.contact{padding-top:5rem}.work-main{width:min(calc(100% - 2.5rem),76rem);padding:1.25rem 0}.work-header{flex-direction:column;gap:.5rem}.work-header-meta{width:100%;justify-content:space-between}.work-access{padding:6rem 0}.work-access-form div{align-items:flex-start;flex-direction:column}.work-index{padding:6rem 0}.work-index article{grid-template-columns:1fr;gap:1rem;padding:1.5rem 0}.work-index article .section-label{margin:0}.case-page{padding:5rem 0}.case-intro{padding:4rem 0 6rem}.case-page section{padding-bottom:4.5rem}.role-list{column-count:1}.note-article{padding:5rem 0}.note-article>header{padding:3.5rem 0 5rem}.note-body section+section{margin-top:3.5rem}.articles-page{padding:5rem 0}.articles-page nav{margin-top:3rem}}