:root{--ink:#0a0a0a;--paper:#ece9df;--blue:#2451ff;--line:#ece9df2b;--muted:#aaa89f;--pad:clamp(1.25rem,4.2vw,4.5rem);color:var(--paper);background:var(--ink);font-synthesis:none;font-family:Sora,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{background:var(--ink);margin:0;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:50;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:1.1em}.site-header{height:72px;padding:0 var(--pad);border-bottom:1px solid var(--line);z-index:40;-webkit-backdrop-filter:blur(18px)saturate(130%);backdrop-filter:blur(18px)saturate(130%);background:#0a0a0aba;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;inset:0 0 auto}.brand{letter-spacing:.14em;align-items:center;gap:.8rem;font-size:.68rem;display:flex}.brand span{border:1px solid var(--paper);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:600;display:grid}.brand b{font-weight:500}.nav-links{align-items:center;height:100%;display:flex}.nav-links a{text-transform:uppercase;letter-spacing:.08em;height:100%;color:var(--muted);border-left:1px solid #0000;border-right:1px solid #0000;align-items:center;gap:.45rem;padding:0 1.1rem;font-size:.65rem;display:flex}.nav-links a small{opacity:.5;font:400 .52rem IBM Plex Mono}.nav-links a:hover,.nav-links a.active{color:var(--paper);border-color:var(--line);background:#ffffff09}.header-cta{border-bottom:1px solid var(--paper);text-transform:uppercase;letter-spacing:.1em;justify-self:end;align-items:center;gap:.75rem;padding:.55rem 0;font-size:.65rem;display:flex}.menu-button{display:none}.section-pad{padding:clamp(6rem,11vw,10rem) var(--pad)}.hero{min-height:100svh;padding:calc(72px + 2rem) var(--pad) 2rem;flex-direction:column;display:flex;position:relative;overflow:hidden}.dither-field{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-shader{z-index:0}.hero:after{content:"";z-index:1;background:linear-gradient(90deg,#0a0a0aed 0%,#0a0a0a80 46%,#0a0a0a14 72%),linear-gradient(#0000 62%,#0a0a0ae0);position:absolute;inset:0}.hero-grid{z-index:2;inset:72px var(--pad) 0;background:linear-gradient(90deg,var(--line) 1px,transparent 1px);border-inline:1px solid var(--line);opacity:.46;background-size:25% 100%;position:absolute}.hero-topline,.hero-copy,.scroll-note{z-index:3;position:relative}.hero-topline{letter-spacing:.08em;color:#c8c5bc;justify-content:space-between;font:400 .61rem IBM Plex Mono;display:flex}.hero-copy{max-width:1100px;margin-top:auto;margin-bottom:clamp(2rem,5vh,5rem)}.hero-name,.eyebrow{letter-spacing:.12em;text-transform:uppercase;font:500 clamp(.57rem,.75vw,.7rem) IBM Plex Mono}.hero-name{color:#d5d1c8;margin:0 0 1.1rem}.hero h1{letter-spacing:-.075em;text-transform:uppercase;flex-direction:column;margin:0;font-size:clamp(4.4rem,10.8vw,10.5rem);font-weight:600;line-height:.79;display:flex}.hero h1 span:nth-child(2){margin-left:.33em}.hero h1 .outline{color:#0000;-webkit-text-stroke:1.5px var(--paper)}.hero-bottom{align-items:center;gap:2rem;margin-top:2.1rem;margin-left:35%;display:flex}.hero-bottom p{color:#c5c2b9;max-width:460px;font-size:clamp(.78rem,1vw,.95rem);line-height:1.7}.round-link{background:#0c0c0c2e;border:1px solid #ffffff80;border-radius:50%;place-items:center;width:50px;height:50px;transition:all .25s;display:grid}.round-link:hover{background:var(--paper);color:var(--ink);transform:rotate(-16deg)}.round-link.small{width:42px;height:42px}.scroll-note{letter-spacing:.12em;color:#aaa;bottom:2.2rem;left:var(--pad);writing-mode:vertical-rl;align-items:center;gap:.8rem;font:400 .55rem IBM Plex Mono;display:flex;position:absolute}.scroll-note i{background:var(--paper);width:1px;height:44px;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25;transform:scaleY(.55)}}.section-head{border-top:1px solid var(--line);padding-top:1rem}.eyebrow{color:var(--muted);gap:1.1rem;margin:0;display:flex}.eyebrow span{color:var(--blue)}.section-head-grid{grid-template-columns:1.45fr .55fr;align-items:end;gap:5vw;margin-top:4rem;display:grid}.section-head h2,.contact h2{letter-spacing:-.065em;text-transform:uppercase;margin:0;font-size:clamp(3rem,7.4vw,7.7rem);font-weight:500;line-height:.9}.section-head h2 em,.contact h2 em{color:#0000;-webkit-text-stroke:1px var(--paper);font-style:normal}.lead{color:var(--muted);max-width:470px;margin:0;font-size:clamp(.82rem,1vw,.98rem);line-height:1.7}.practice{background:var(--ink)}.discipline-list{border-top:1px solid var(--line);margin-top:clamp(5rem,10vw,9rem)}.discipline{border-bottom:1px solid var(--line);grid-template-columns:.25fr .7fr 1.5fr 1.3fr .8fr 44px;align-items:center;gap:2rem;min-height:180px;transition:all .25s;display:grid;position:relative}.discipline:before{content:"";background:var(--paper);transform-origin:bottom;z-index:0;transition:transform .3s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0;transform:scaleY(0)}.discipline:hover:before{transform:scaleY(1)}.discipline>*{z-index:1;position:relative}.discipline:hover{color:var(--ink)}.discipline:hover .eyebrow,.discipline:hover p,.discipline:hover small{color:#444}.discipline-no{font:400 .65rem IBM Plex Mono}.discipline h3{letter-spacing:-.04em;margin:0;font-size:clamp(1.5rem,2.4vw,2.6rem);font-weight:500}.discipline>p:not(.eyebrow){color:var(--muted);font-size:.82rem;line-height:1.6}.discipline small{color:#888;font:400 .56rem/1.6 IBM Plex Mono}.disc-arrow svg{width:1.45rem}.manifesto{background:var(--blue);color:#fff;grid-template-columns:1fr 3fr 1fr;align-items:start;gap:2rem;min-height:350px;margin-top:clamp(4rem,8vw,8rem);padding:2rem;display:grid}.manifesto span{letter-spacing:.1em;font:500 .58rem IBM Plex Mono}.manifesto span:last-child{text-align:right}.manifesto p{letter-spacing:-.055em;align-self:center;margin:auto 0;font-size:clamp(2rem,4.6vw,5.1rem);line-height:.98}.work{color:var(--ink);background:#e9e6dc}.work .section-head{border-color:#0a0a0a2e}.work .section-head h2 em{-webkit-text-stroke-color:var(--ink)}.work .eyebrow,.work .lead{color:#595852}.filter-bar{border-block:1px solid #0a0a0a33;margin-top:5rem;display:flex}.filter-bar button{border:0;text-transform:uppercase;letter-spacing:.05em;background:0 0;border-right:1px solid #0a0a0a33;padding:1rem 1.35rem;font:500 .61rem IBM Plex Mono}.filter-bar button span{opacity:.5;margin-left:.8rem}.filter-bar button.active,.filter-bar button:hover{background:var(--ink);color:var(--paper)}.project-list{border-bottom:1px solid #0a0a0a33}.project-row{animation:.5s both rowIn;animation-delay:var(--delay);border-top:1px solid #0a0a0a33;grid-template-columns:.48fr 1fr 1.5fr 60px;align-items:center;gap:clamp(1rem,3vw,3.5rem);padding:2.4rem 0;display:grid}@keyframes rowIn{0%{opacity:0;transform:translateY(12px)}}.project-meta{letter-spacing:.08em;flex-direction:column;justify-content:space-between;align-self:stretch;font:500 .58rem IBM Plex Mono;display:flex}.project-visual{color:#fff;background:#141414;place-items:center;height:190px;display:grid;position:relative;overflow:hidden}.project-visual:after{content:"";opacity:.8;background-image:radial-gradient(currentColor .9px,#0000 .9px);background-size:5px 5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(115deg,#0000 5%,#000 42%,#0000 90%);mask-image:linear-gradient(115deg,#0000 5%,#000 42%,#0000 90%)}.dither-orb{aspect-ratio:1;filter:contrast(1.45);background:radial-gradient(circle at 35% 30%,#fff,currentColor 33%,#050505 70%);border-radius:50%;width:145px}.project-visual>span{letter-spacing:.2em;z-index:2;font:500 .55rem IBM Plex Mono;position:absolute}.tone-blue .project-visual{color:#2852ff}.tone-sand .project-visual{color:#d0ba91}.tone-violet .project-visual{color:#7856ff}.tone-lime .project-visual{color:#a9d64c}.tone-rust .project-visual{color:#c25d39}.tone-cyan .project-visual{color:#23b6c9}.project-copy>p:first-child{opacity:.5;font:400 .58rem IBM Plex Mono}.project-copy h3{letter-spacing:-.04em;margin:.7rem 0;font-size:clamp(1.55rem,2.5vw,2.7rem);font-weight:500}.project-copy>p{color:#5d5b55;max-width:590px;font-size:.78rem;line-height:1.65}.project-copy>div{gap:.5rem;margin-top:1.4rem;display:flex}.project-copy>div span{border:1px solid #aaa79e;border-radius:20px;padding:.35rem .55rem;font:500 .52rem IBM Plex Mono}.project-row .round-link{background:0 0;border-color:#777}.about{grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,8rem);min-height:100vh;display:grid}.about-visual{background:#0f0e18;min-height:720px;position:relative;overflow:hidden}.about-visual .dither-field{z-index:0}.portrait{z-index:1;justify-content:center;align-items:end;height:83%;display:flex;position:absolute;inset:auto 8% 0;overflow:hidden}.portrait img{-o-object-fit:contain;object-fit:contain;-o-object-position:bottom;object-position:bottom;filter:grayscale()contrast(1.1);mix-blend-mode:luminosity;width:100%;height:100%;-webkit-mask-image:linear-gradient(#000 75%,#0000);mask-image:linear-gradient(#000 75%,#0000)}.about-visual>p{z-index:2;letter-spacing:.1em;font:500 .57rem IBM Plex Mono;position:absolute;inset:auto 1.5rem 1.5rem}.about .section-head-grid{margin-top:3rem;display:block}.about .section-head h2{font-size:clamp(3rem,5.4vw,5.8rem)}.about-text{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:2rem;margin-top:4rem;padding-top:2rem;display:grid}.about-text p{color:var(--muted);font-size:.8rem;line-height:1.75}.about-text a{color:var(--paper);border-bottom:1px solid}.stat-grid{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:4rem;display:grid}.stat-grid div{border-right:1px solid var(--line);padding:1.8rem 1rem}.stat-grid strong{font-size:2rem;font-weight:400;display:block}.stat-grid span{color:var(--muted);font:400 .53rem/1.6 IBM Plex Mono}.experience{padding-top:2rem}.experience .section-head-grid{grid-template-columns:1fr;margin-top:3rem}.timeline{border-top:1px solid var(--line);margin-top:6rem}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:.2fr .5fr 1.2fr 1.2fr;align-items:start;gap:2rem;padding:2rem 0;display:grid}.timeline-row>span,.timeline-row time{color:var(--muted);font:400 .57rem IBM Plex Mono}.timeline-row h3{margin:0 0 .5rem;font-size:clamp(1rem,1.5vw,1.4rem);font-weight:500}.timeline-row div p,.timeline-row>p{color:var(--muted);margin:0;font-size:.72rem;line-height:1.6}.cert-strip{border:1px solid var(--line);margin-top:6rem;padding:1.3rem}.cert-strip>span{letter-spacing:.09em;font:500 .57rem IBM Plex Mono}.cert-strip>div{flex-wrap:wrap;gap:.6rem;margin-top:2.5rem;display:flex}.cert-strip>div span{color:#aaa;background:#171717;padding:.65rem .8rem;font:400 .54rem IBM Plex Mono}.contact{background:#0c0c0c;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,9rem);display:grid;position:relative;overflow:hidden}.contact:before{content:"";z-index:1;background:linear-gradient(90deg,#0a0a0afc 0 45%,#0a0a0aa3);position:absolute;inset:0}.contact>:not(.contact-shader){z-index:2;position:relative}.contact-shader{opacity:.62}.contact-intro h2{margin:3rem 0 2rem;font-size:clamp(3.2rem,6vw,6.8rem)}.contact-intro>p:not(.eyebrow){max-width:500px;color:var(--muted);font-size:.85rem;line-height:1.7}.contact-intro>a{border-bottom:1px solid;align-items:center;gap:.7rem;margin-top:3rem;padding-bottom:.5rem;font:500 .63rem IBM Plex Mono;display:inline-flex}.contact-form{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080808c4;border:1px solid #ffffff2e;padding:2rem}.contact-form label{border-bottom:1px solid var(--line);padding:1.2rem 0;display:block}.contact-form label span,.seo-lab label span{letter-spacing:.08em;color:#777;margin-bottom:.7rem;font:500 .52rem IBM Plex Mono;display:block}.contact-form input,.contact-form textarea,.contact-form select,.seo-lab input{resize:none;background:0 0;border:0;outline:0;width:100%;padding:.3rem 0;font-size:.88rem}.contact-form select{appearance:none}.contact-form button,.seo-lab button{background:var(--blue);letter-spacing:.1em;border:0;justify-content:space-between;align-items:center;width:100%;margin-top:1.5rem;padding:1rem 1.2rem;font:600 .61rem IBM Plex Mono;display:flex}.form-note{color:#aaa;opacity:0;font:400 .58rem/1.5 IBM Plex Mono;transition:all .2s}.form-note.show{opacity:1}.seo-lab{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:1fr 1.3fr;gap:5rem;margin-top:6rem;padding-top:2rem;display:grid}.seo-lab h3{letter-spacing:-.04em;margin:1rem 0;font-size:clamp(1.5rem,2.5vw,2.7rem)}.seo-lab>div>p:last-child{color:var(--muted);font-size:.75rem;line-height:1.6}.seo-lab form{border:1px solid var(--line);grid-template-columns:1fr auto;align-self:center;padding:.5rem;display:grid}.seo-lab form label{padding:.5rem 1rem}.seo-lab form button{gap:1rem;width:auto;margin:0;padding:0 1.2rem}.seo-progress{grid-column:2}.seo-progress div{justify-content:space-between;font:400 .55rem IBM Plex Mono;display:flex}.seo-progress i{background:#333;height:2px;margin-top:.7rem;display:block}.seo-progress i span{background:var(--blue);height:100%;transition:width .5s;display:block}footer{padding:2rem var(--pad);border-top:1px solid var(--line);grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:2rem;display:grid}footer>p,footer>span,footer>div{color:#777;letter-spacing:.08em;font:400 .55rem IBM Plex Mono}footer>div{gap:1rem;display:flex}footer>div a:hover{color:var(--paper)}.reveal{opacity:0;transition:opacity .75s,transform .75s cubic-bezier(.2,.75,.2,1);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@media (width<=900px){.site-header{grid-template-columns:1fr auto}.nav-links{border-bottom:1px solid var(--line);background:#0a0a0a;flex-direction:column;height:auto;padding:1rem;display:none;position:absolute;top:72px;left:0;right:0}.menu-open .nav-links{display:flex}.nav-links a{width:100%;height:auto;padding:1rem}.header-cta{display:none}.menu-button{border:1px solid var(--line);background:0 0;place-content:center;gap:5px;width:38px;height:38px;display:grid}.menu-button i{background:currentColor;width:16px;height:1px;display:block}.menu-open .menu-button i:first-child{transform:translateY(3px)rotate(45deg)}.menu-open .menu-button i:last-child{transform:translateY(-3px)rotate(-45deg)}.hero h1{font-size:clamp(4rem,15vw,8rem)}.hero-bottom{margin-left:15%}.section-head-grid{grid-template-columns:1fr;margin-top:2.5rem}.discipline{grid-template-columns:.25fr .7fr 1.5fr 44px;padding:1.7rem 0}.discipline>p:not(.eyebrow),.discipline small{display:none}.manifesto{grid-template-columns:1fr}.manifesto span:last-child{text-align:left}.project-row{grid-template-columns:.3fr 1fr 44px}.project-visual{display:none}.about{grid-template-columns:1fr}.about-visual{order:2;min-height:600px}.timeline-row{grid-template-columns:.2fr .5fr 1.3fr}.timeline-row>p{display:none}.contact{grid-template-columns:1fr}.seo-lab{grid-template-columns:1fr;gap:2rem}.seo-progress{grid-column:1}footer{grid-template-columns:1fr 1fr}footer>p{display:none}}@media (width<=560px){.section-pad{padding-block:5.5rem}.hero{padding-top:calc(72px + 1.2rem)}.hero-topline span:last-child{display:none}.hero h1{font-size:17.5vw;line-height:.84}.hero h1 span:nth-child(2){margin-left:0}.hero-bottom{align-items:end;margin-left:0}.hero-bottom p{max-width:280px}.scroll-note{display:none}.discipline{grid-template-columns:35px 1fr 35px;gap:1rem}.discipline .eyebrow{display:none}.manifesto{min-height:280px;margin-inline:calc(var(--pad)*-1)}.filter-bar{overflow:auto}.filter-bar button{white-space:nowrap}.project-row{grid-template-columns:48px 1fr 40px;gap:.7rem}.project-copy>p{font-size:.7rem}.project-copy>div{flex-wrap:wrap}.about{gap:4rem}.about-visual{min-height:470px;margin-inline:calc(var(--pad)*-1)}.about-text{grid-template-columns:1fr}.stat-grid strong{font-size:1.4rem}.stat-grid span{font-size:.44rem}.timeline-row{grid-template-columns:35px 1fr}.timeline-row time{display:none}.contact{gap:3rem}.contact-form{padding:1.2rem}.seo-lab form{grid-template-columns:1fr}.seo-lab form button{width:100%;padding:1rem}.seo-progress{grid-column:auto}footer{grid-template-columns:1fr}footer>div{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
