@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-wght-normal-E0tuGl4L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}:root{color:#151512;background:#f4f1e8;font-family:Archivo Variable,Archivo,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--porcelain: #f4f1e8;--paper: #fffdf7;--ink: #151512;--muted: #625e55;--soft-line: #cbc6ba;--orange: #ff5a36;--acid: #f4ed53;--cobalt: #2f5cff;--focus: #1748dd;--page: 1480px;--header-height: 72px;--ease: .18s ease-out;--scroll-progress: 0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{min-height:100vh;margin:0;overflow-x:hidden;background:var(--porcelain);color:var(--ink);-webkit-font-smoothing:antialiased}button,a,summary{font:inherit;touch-action:manipulation}a{color:inherit}h1,h2,h3,p{margin-top:0}::selection{background:var(--acid);color:var(--ink)}button.is-pressing,a.is-pressing:not(.skip-link),summary.is-pressing{z-index:1;animation:control-register .3s cubic-bezier(.2,.8,.2,1);transform-origin:center;will-change:transform,box-shadow}@keyframes control-register{0%,to{box-shadow:inset 0 0 0 transparent;transform:translateZ(0) scale(1)}38%{box-shadow:inset 7px 0 0 var(--press-color, var(--orange));transform:translate3d(1px,1px,0) scale(.982)}66%{box-shadow:inset 3px 0 0 var(--press-color, var(--cobalt));transform:translateZ(0) scale(1.006)}}.page-grid{width:min(100%,var(--page));margin-inline:auto;padding-inline:clamp(20px,5vw,76px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section-label,.intro-kicker,.intro-title>p,.index-number,.index-scope,.method-steps>li>span,.skills-list>div>span{font-family:IBM Plex Mono,Consolas,monospace}.section-label{margin:0;font-size:.75rem;font-weight:500;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.skip-link{position:fixed;z-index:100;inset:10px auto auto 10px;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border:2px solid var(--ink);background:var(--acid);color:var(--ink);font-weight:700;text-decoration:none;transform:translateY(-160%);transition:transform var(--ease)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;z-index:40;top:0;height:var(--header-height);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;padding-inline:clamp(20px,5vw,76px);border-bottom:2px solid var(--ink);background:var(--porcelain)}.site-header:after{position:absolute;right:0;bottom:-2px;left:0;height:3px;background:var(--cobalt);content:"";transform:scaleX(var(--scroll-progress));transform-origin:left;will-change:transform}.wordmark{width:fit-content;min-height:44px;display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,Consolas,monospace;font-size:.82rem;font-weight:500;letter-spacing:.06em;text-decoration:none}.wordmark span:first-child{width:34px;height:26px;display:grid;place-items:center;background:var(--ink);color:var(--paper)}.desktop-nav{display:flex;align-items:center;gap:clamp(20px,2.8vw,42px)}.desktop-nav a,.header-contact{min-height:44px;display:inline-flex;align-items:center;font-size:.84rem;font-weight:600;text-decoration:none}.desktop-nav a{min-width:44px;justify-content:center;position:relative}.desktop-nav a:after{position:absolute;right:0;bottom:7px;left:0;height:2px;background:var(--orange);content:"";transform:scaleX(0);transform-origin:left;transition:transform var(--ease)}.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after{transform:scaleX(1)}.header-contact{justify-self:end;gap:16px;padding:0 16px;border:2px solid var(--ink);background:var(--orange);transition:background-color var(--ease),color var(--ease)}.header-contact:hover{background:var(--ink);color:var(--paper)}.header-contact svg,.index-list svg,.contact-email svg:last-child,.mobile-email svg{transition:transform var(--ease)}.header-contact:hover svg,.index-name>a:hover svg,.contact-email:hover svg:last-child,.mobile-email:hover svg{transform:translate(4px)}.mobile-menu{display:none}.intro{position:relative;overflow:hidden;padding:clamp(50px,6.5vw,92px) 0 clamp(54px,6vw,84px);border-bottom:2px solid var(--ink);background:var(--porcelain)}.intro-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.hero-motion{--motion-rotate-x: 0deg;--motion-rotate-y: 0deg;--motion-shift-x: 0px;--motion-shift-y: 0px;position:absolute;z-index:1;top:clamp(38px,5vw,78px);right:clamp(-170px,-8vw,-64px);width:clamp(310px,38vw,620px);aspect-ratio:1;opacity:0;perspective:1200px;pointer-events:none;transform:translate3d(var(--motion-shift-x),var(--motion-shift-y),0) rotateX(var(--motion-rotate-x)) rotateY(var(--motion-rotate-y));transform-style:preserve-3d;transition:opacity .7s ease,transform .32s cubic-bezier(.2,.75,.2,1)}.site-content--ready .hero-motion{opacity:.32}.hero-motion-axis{position:absolute;z-index:1;display:block;background:var(--ink);opacity:.5}.hero-motion-axis--horizontal{width:100%;height:1px;top:50%;left:0}.hero-motion-axis--vertical{width:1px;height:100%;top:0;left:50%}.hero-motion-stack{position:absolute;top:14%;right:14%;bottom:14%;left:14%;transform-style:preserve-3d;animation:hero-camera-drift 8s ease-in-out infinite alternate}.hero-motion-plane{position:absolute;top:13%;left:21%;width:58%;aspect-ratio:.78;display:block;border:2px solid var(--ink);backface-visibility:hidden}.hero-motion-plane--cobalt{background:var(--cobalt);transform:translate3d(-52px,-34px,-95px) rotate(-8deg)}.hero-motion-plane--orange{background:var(--orange);transform:translate3d(48px,38px,-42px) rotate(9deg)}.hero-motion-plane--paper{display:flex;flex-direction:column;justify-content:space-between;padding:18px;background:var(--paper);color:var(--ink);font-family:IBM Plex Mono,Consolas,monospace;font-size:clamp(.62rem,.8vw,.76rem);letter-spacing:.08em;transform:translateZ(34px)}.hero-motion-plane--paper i{font-style:normal}.hero-motion-plane--paper i:last-child{align-self:flex-end}@keyframes hero-camera-drift{0%{transform:rotateX(4deg) rotateY(-8deg) scale(.94)}to{transform:rotateX(-5deg) rotateY(9deg) scale(1.06)}}.intro-kicker{grid-column:1 / 3;display:grid;align-content:start;gap:8px;margin:5px 0 0;color:var(--muted);font-size:.76rem;letter-spacing:.04em;line-height:1.5;text-transform:uppercase}.intro-kicker span:first-child{color:var(--ink);font-weight:500}.intro-title{grid-column:3 / 10}.intro-title>p{margin-bottom:20px;font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.intro h1{max-width:950px;margin:0;font-size:clamp(3.7rem,7.25vw,7.45rem);font-weight:680;letter-spacing:-.065em;line-height:.9}.availability{grid-column:10 / 13;align-self:end;padding-top:20px;border-top:2px solid var(--ink)}.availability p{margin-bottom:10px;color:var(--muted);font-size:.9rem;line-height:1.55}.availability .availability-status{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:650}.availability-status>span{width:11px;height:11px;flex:0 0 auto;border:2px solid var(--ink);background:var(--acid)}.availability a{min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere;font-size:.84rem;font-weight:650;text-underline-offset:4px}.availability-document{min-height:44px;display:flex;align-items:center;gap:9px;margin-top:4px;padding:0;border:0;border-bottom:2px solid var(--orange);background:transparent;color:var(--ink);cursor:pointer;font-size:.84rem;font-weight:700}.availability-document svg{transition:transform var(--ease)}.availability-document:hover svg,.availability-document:focus-visible svg{transform:translateY(-2px) rotate(-5deg)}.skills-section{padding:clamp(92px,10vw,150px) 0;border-bottom:2px solid var(--ink);background:var(--paper)}.section-heading{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.section-heading>.section-label{grid-column:1 / 3;padding-top:8px}.section-heading>h2{grid-column:3 / 10;margin:0;font-size:clamp(2.8rem,5.1vw,5.2rem);font-weight:650;letter-spacing:-.055em;line-height:.98}.section-heading>p:last-child{grid-column:10 / 13;align-self:end;margin:0;color:var(--muted);font-size:.96rem;line-height:1.62}.motion-ready [data-reveal],.motion-ready .intro-kicker,.motion-ready .intro-title,.motion-ready .availability,.motion-ready .section-heading,.motion-ready .case-file,.motion-ready .project-index,.motion-ready .method-intro,.motion-ready .skills-intro,.motion-ready .skills-list,.motion-ready .documents-copy,.motion-ready .document-deck,.motion-ready .about-copy,.motion-ready .about-facts,.motion-ready .contact-inner{--reveal-distance: 34px;opacity:0;transform:translate3d(0,var(--reveal-distance),0) scale(.985);transition:opacity .62s ease,transform .76s cubic-bezier(.2,.75,.2,1)}.motion-ready [data-reveal-from=top]{--reveal-distance: -28px}.motion-ready [data-reveal].is-revealed,.motion-ready .is-revealed{opacity:1;transform:translateZ(0) scale(1)}.motion-ready .method-steps li{transition:opacity .52s ease,transform .72s cubic-bezier(.2,.75,.2,1)}.motion-ready .method-steps:not(.is-revealed) li{opacity:0;transform:translate3d(0,22px,0);transition-delay:0ms}.motion-ready .method-steps.is-revealed li{opacity:1;transform:translateZ(0)}.motion-ready .method-steps.is-revealed li:nth-child(2){transition-delay:70ms}.motion-ready .method-steps.is-revealed li:nth-child(3){transition-delay:.14s}.motion-ready .method-steps.is-revealed li:nth-child(4){transition-delay:.21s}.work-section{padding:clamp(92px,10vw,150px) 0;border-bottom:2px solid var(--ink);background:var(--porcelain)}.case-list{margin-top:clamp(82px,9vw,132px)}.case-file{position:relative;padding:clamp(30px,4vw,54px) 0 clamp(86px,9vw,128px);border-top:3px solid var(--ink);scroll-margin-top:22px}.case-file+.case-file{margin-top:10px}.case-rule{width:min(220px,42vw);height:10px;display:grid;grid-template-columns:5fr 1fr 1.4fr;gap:5px;margin-bottom:clamp(42px,5vw,70px)}.case-rule span:first-child{background:var(--ink)}.case-rule span:nth-child(2){background:var(--orange)}.case-rule span:last-child{background:var(--cobalt)}.project-status{width:fit-content;display:inline-flex;align-items:center;gap:8px;min-height:26px;padding:4px 9px;border:1px solid currentcolor;font-family:IBM Plex Mono,Consolas,monospace;font-size:.62rem;font-style:normal;font-weight:600;letter-spacing:.055em;line-height:1.25;text-transform:uppercase}.project-status i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentcolor}.project-status[data-status="In progress"]{background:var(--cobalt);color:var(--paper)}.project-status[data-status=Experimental]{background:var(--orange);color:var(--ink)}.project-status[data-status="Reviewable sample"]{background:var(--acid);color:var(--ink)}.project-status[data-status="Runtime unverified"]{background:var(--ink);color:var(--paper)}.project-index{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-top:clamp(82px,9vw,132px);border-top:3px solid var(--ink)}.index-heading{grid-column:1 / 5}.index-heading h3{max-width:420px;margin:20px 0 0;font-size:clamp(2.1rem,3.5vw,3.6rem);font-weight:650;letter-spacing:-.05em;line-height:1}.index-list{grid-column:5 / 13;border-top:2px solid var(--ink)}.index-entry{--press-color: var(--orange);min-height:140px;display:grid;grid-template-columns:40px minmax(155px,.8fr) minmax(220px,1.25fr) minmax(115px,.55fr);align-items:start;gap:18px;padding:24px 0;border-bottom:1px solid var(--ink);transition:background-color var(--ease),padding var(--ease)}.index-entry:hover,.index-entry:focus-within{padding-right:10px;padding-left:10px;background:var(--paper)}.index-number{color:var(--muted);font-size:.68rem}.index-name{display:grid;gap:6px}.index-name>a{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:var(--ink);font-size:clamp(1.2rem,1.7vw,1.65rem);font-weight:680;letter-spacing:-.03em;text-decoration-thickness:1px;text-underline-offset:4px}.index-name small,.index-copy{color:var(--muted);font-size:.75rem;line-height:1.5}.index-name small{font-size:.7rem}.index-copy small{display:block;margin-top:10px;color:var(--muted);font-size:.68rem;line-height:1.45}.index-actions{display:grid;justify-items:start;gap:10px;font-size:.74rem;line-height:1.4}.index-actions a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:3px}.index-actions a:hover,.index-name>a:hover{color:var(--cobalt)}.index-actions a:first-child{font-weight:650}.index-name .project-status{justify-self:start}.index-name svg{flex:none}.method-section{padding:clamp(92px,10vw,150px) 0;border-bottom:2px solid var(--ink);background:var(--ink);color:var(--paper)}.method-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.method-intro{grid-column:1 / 6}.method-intro .section-label{color:var(--orange)}.method-intro h2{max-width:680px;margin:32px 0;font-size:clamp(2.8rem,5vw,5rem);font-weight:620;letter-spacing:-.055em;line-height:.98}.method-intro>p:last-child{max-width:590px;margin:0;color:#cbc6ba;font-size:1rem;line-height:1.68}.method-current{max-width:590px;margin-top:clamp(38px,5vw,62px);padding:18px 0 0 18px;border-top:1px solid #77736a;border-left:8px solid var(--orange)}.method-current span{display:block;margin-bottom:12px;color:var(--orange);font-family:IBM Plex Mono,Consolas,monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.method-current p{margin:0;color:var(--paper);font-size:.92rem;line-height:1.62}.method-steps{grid-column:7 / 13;margin:0;padding:0;border-top:2px solid var(--paper);list-style:none}.method-steps li{display:grid;grid-template-columns:48px .42fr 1fr;gap:18px;align-items:start;padding:24px 0;border-bottom:1px solid #4c4a45}.method-steps li>span{color:var(--orange);font-size:.72rem}.method-steps h3{margin:-3px 0 0;font-size:1.35rem;font-weight:620}.method-steps p{margin:0;color:#cbc6ba;font-size:.9rem;line-height:1.58}.skills-list{margin-top:clamp(68px,8vw,108px)}.skills-list>div{min-height:100px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center;border-top:1px solid var(--ink)}.skills-list>div:last-child{border-bottom:1px solid var(--ink)}.skills-list>div>span{grid-column:1;color:var(--muted);font-size:.7rem}.skills-list dt{grid-column:2 / 5;font-size:clamp(1.3rem,2vw,1.9rem);font-weight:680;letter-spacing:-.03em}.skills-list dd{grid-column:5 / 13;margin:0;color:#49463f;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.6}.documents-section{position:relative;overflow:hidden;padding:clamp(92px,10vw,150px) 0;border-bottom:2px solid var(--ink);background:var(--cobalt);color:var(--paper)}.documents-section:before{position:absolute;width:min(72vw,980px);aspect-ratio:1;top:-52%;right:-28%;pointer-events:none;border:1px solid rgb(255 255 255 / .13);transform:rotate(18deg);content:""}.documents-layout{position:relative;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(48px,7vw,112px) 24px;align-items:center}.documents-copy{grid-column:1 / 7;min-width:0}.documents-copy .section-label{color:#d9dfff}.documents-copy h2{max-width:780px;margin:26px 0 34px;font-size:clamp(3rem,5.6vw,5.7rem);font-weight:660;letter-spacing:-.06em;line-height:.95}.documents-lead{max-width:58ch;margin:0;color:#e8ebff;font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.65}.document-list{margin-top:clamp(48px,6vw,78px);border-bottom:1px solid rgb(255 255 255 / .45)}.document-list button{width:100%;min-height:104px;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:18px;align-items:center;padding:18px 0;border:0;border-top:1px solid rgb(255 255 255 / .45);background:transparent;color:var(--paper);cursor:pointer;text-align:left;transition:color var(--ease),padding var(--ease),background-color var(--ease)}.document-list button:hover,.document-list button:focus-visible{padding-inline:14px;background:var(--acid);color:var(--ink)}.document-list button>span:first-child,.document-list small{font-family:IBM Plex Mono,Consolas,monospace}.document-list button>span:first-child{align-self:start;padding-top:4px;font-size:.7rem}.document-list button>span:nth-child(2){min-width:0;display:grid;gap:7px}.document-list small{color:currentcolor;font-size:.66rem;font-weight:500;letter-spacing:.06em;line-height:1.45;text-transform:uppercase}.document-list strong{max-width:30ch;font-size:clamp(1.1rem,1.7vw,1.45rem);letter-spacing:-.025em;line-height:1.15}.document-list svg{justify-self:end;transition:transform var(--ease)}.document-list button:hover svg,.document-list button:focus-visible svg{transform:translate(4px)}.document-deck{position:relative;grid-column:7 / 13;min-width:0;min-height:clamp(520px,47vw,680px);display:block;overflow:hidden;padding:0;border:2px solid var(--ink);background:#11110f;color:var(--paper);cursor:pointer;perspective:1200px;isolation:isolate}.document-deck:before,.document-deck:after{position:absolute;z-index:-1;border:1px solid rgb(255 255 255 / .18);border-radius:50%;content:""}.document-deck:before{width:520px;height:520px;right:-220px;top:-210px}.document-deck:after{width:280px;height:280px;bottom:-140px;left:-120px}.document-shadow{position:absolute;width:min(64%,390px);aspect-ratio:.71;top:53%;left:51%;background:#0009;filter:blur(30px);transform:translate(-42%,-43%) rotate(7deg);transition:transform .42s cubic-bezier(.2,.75,.2,1)}.document-paper{position:absolute;width:min(64%,390px);aspect-ratio:.71;display:block;overflow:hidden;border:2px solid var(--ink);background:var(--paper);color:var(--ink);text-align:left;transform-style:preserve-3d;backface-visibility:hidden;transition:transform .42s cubic-bezier(.2,.75,.2,1),box-shadow .42s ease}.document-paper--letter{top:50%;left:50%;padding:32px 30px;background:var(--orange);transform:translate(-35%,-51%) rotate(8deg) rotateY(-8deg);animation:letter-drift 7s ease-in-out infinite alternate}.document-paper--letter>span{font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem}.document-paper--letter strong{display:block;margin-top:78%;font-size:clamp(2rem,4vw,4rem);letter-spacing:-.06em;line-height:.9}.document-paper--letter i{display:block;width:72%;height:2px;margin-top:13px;background:var(--ink)}.document-paper--letter i:nth-of-type(2){width:88%}.document-paper--letter i:nth-of-type(3){width:56%}.document-paper--cv{top:50%;left:50%;padding:29px 30px;box-shadow:0 22px 70px #0000005c;transform:translate(-60%,-48%) rotate(-5deg) rotateY(5deg)}.document-paper--cv:before{position:absolute;top:0;right:0;left:0;height:10px;background:var(--orange);content:""}.document-paper--cv:after{position:absolute;top:0;left:74%;width:14%;height:10px;border-right:8px solid var(--ink);background:var(--cobalt);content:""}.document-paper--cv>span,.document-paper--cv em{font-family:IBM Plex Mono,Consolas,monospace;font-size:.61rem;font-style:normal;letter-spacing:.05em}.document-paper--cv strong{display:block;margin-top:36%;font-size:clamp(2.7rem,5.5vw,5.4rem);letter-spacing:-.08em;line-height:.78}.document-paper--cv em{display:block;margin:18px 0 36px}.document-paper--cv i{display:block;width:100%;height:2px;margin-top:14px;background:var(--soft-line)}.document-paper--cv i:nth-of-type(2){width:84%}.document-paper--cv i:nth-of-type(3){width:62%}.document-deck-hint{position:absolute;right:22px;bottom:20px;left:22px;min-height:46px;display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid rgb(255 255 255 / .4);font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.document-deck:hover .document-paper--cv,.document-deck:focus-visible .document-paper--cv{box-shadow:0 28px 90px #0000007a;transform:translate(-62%,-53%) rotate(-2deg) rotateY(1deg) rotateX(2deg) scale(1.02)}.document-deck:hover .document-paper--letter,.document-deck:focus-visible .document-paper--letter{transform:translate(-29%,-48%) rotate(11deg) rotateY(-4deg) translateZ(-12px)}.document-deck:hover .document-shadow,.document-deck:focus-visible .document-shadow{transform:translate(-40%,-40%) rotate(3deg) scale(1.08)}@keyframes letter-drift{0%{transform:translate(-35%,-51%) rotate(8deg) rotateY(-8deg) translateY(-3px)}to{transform:translate(-35%,-51%) rotate(8.8deg) rotateY(-6deg) translateY(5px)}}body.document-viewer-open{overflow:hidden}.document-viewer{--document-flight-left: 20vw;--document-flight-top: 18vh;--document-flight-width: 60vw;--document-flight-height: 64vh;--document-flight-x: 0px;--document-flight-y: 18vh;--document-flight-scale: .06;--document-flight-rotate: 0deg;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:clamp(10px,2vw,26px);border:0;overflow:hidden;background:#151512a3;color:var(--ink);animation:document-backdrop-arrive .54s ease-out both}.document-viewer::backdrop{background:transparent}.document-flight{position:fixed;z-index:3;top:var(--document-flight-top);left:var(--document-flight-left);width:var(--document-flight-width);height:var(--document-flight-height);display:grid;grid-template-rows:auto 1fr auto auto auto;gap:clamp(8px,1.8vw,22px);padding:clamp(18px,4vw,56px);overflow:hidden;visibility:hidden;border:2px solid var(--ink);border-top:11px solid var(--orange);background:var(--paper);box-shadow:0 32px 100px #00000061;opacity:0;pointer-events:none;transform-origin:center;will-change:transform,opacity}.document-flight:before{position:absolute;top:-11px;left:68%;width:16%;height:11px;background:var(--cobalt);content:""}.document-flight>span{font-family:IBM Plex Mono,Consolas,monospace;color:var(--cobalt);font-size:clamp(.58rem,1vw,.72rem);letter-spacing:.08em;text-transform:uppercase}.document-flight>strong{align-self:center;font-size:clamp(3rem,10vw,8rem);letter-spacing:-.065em;line-height:.84;text-transform:uppercase}.document-flight>i{display:block;height:2px;background:var(--ink);opacity:.76}.document-flight>i:nth-of-type(2){width:78%}.document-flight>i:nth-of-type(3){width:54%}.document-viewer-shell{position:relative;z-index:1;width:min(1420px,100%);height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);margin:0 auto;overflow:hidden;border:2px solid var(--ink);border-radius:22px;background:#ded9cc;box-shadow:0 32px 120px #00000073;visibility:hidden;opacity:0;transform-origin:center}.document-viewer[data-flight-ready=true] .document-flight{visibility:visible;animation:document-flight-arrive .76s cubic-bezier(.38,0,.18,1) both}.document-viewer[data-flight-ready=true] .document-viewer-shell{visibility:visible;animation:document-reader-arrive .76s cubic-bezier(.38,0,.18,1) both}.document-viewer.is-closing{animation:document-backdrop-leave .62s ease-in both}.document-viewer[data-flight-ready=true].is-closing .document-flight{animation:document-flight-return .62s cubic-bezier(.58,0,.86,.32) both}.document-viewer[data-flight-ready=true].is-closing .document-viewer-shell{animation:document-reader-leave .62s ease-in both}.document-viewer-toolbar{min-height:70px;display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding:10px 14px 10px 20px;border-bottom:2px solid var(--ink);background:var(--porcelain)}.document-viewer-toolbar>div:first-child{display:flex;align-items:baseline;gap:12px}.document-viewer-toolbar p,.document-viewer-toolbar h2{margin:0}.document-viewer-toolbar p{font-family:IBM Plex Mono,Consolas,monospace;color:var(--muted);font-size:.63rem;letter-spacing:.06em}.document-viewer-toolbar h2{font-size:1rem;font-weight:700;text-transform:uppercase}.document-tabs{min-height:44px;display:flex;border:2px solid var(--ink)}.document-tabs button{min-width:88px;min-height:40px;padding:0 16px;border:0;background:var(--paper);color:var(--ink);cursor:pointer;font-size:.76rem;font-weight:700}.document-tabs button+button{border-left:2px solid var(--ink)}.document-tabs button[aria-selected=true]{background:var(--cobalt);color:var(--paper)}.document-viewer-actions{justify-self:end;display:flex;gap:8px}.document-viewer-actions a,.document-viewer-actions button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;font-size:.76rem;font-weight:700;text-decoration:none}.document-viewer-actions a{padding:0 14px}.document-viewer-actions button{width:46px;padding:0;background:var(--orange)}.document-viewer-actions a:hover,.document-viewer-actions a:focus-visible,.document-viewer-actions button:hover,.document-viewer-actions button:focus-visible,.document-tabs button:hover,.document-tabs button:focus-visible{background:var(--acid);color:var(--ink)}.document-viewer-canvas{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(20px,4vw,58px)}.document-page{position:relative;width:min(920px,100%);min-width:0;margin:0 auto;padding:clamp(30px,5vw,68px);border:2px solid var(--ink);border-top:11px solid var(--orange);background:var(--paper);box-shadow:0 26px 70px #302a1d38;transform-origin:50% 0;animation:page-unfold .48s cubic-bezier(.18,.82,.2,1) both}.document-viewer[data-direction=back] .document-page{animation-name:page-unfold-back}.document-page:before{position:absolute;top:-11px;left:70%;width:13%;height:11px;background:var(--cobalt);content:""}.document-page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;padding-bottom:28px;border-bottom:2px solid var(--ink)}.document-page-header h2{margin:3px 0 4px;font-size:clamp(2.4rem,5.2vw,4.6rem);font-weight:690;letter-spacing:-.065em;line-height:.9}.document-page-header p{margin:0;font-size:.9rem;line-height:1.45}.document-page-header .document-page-kicker{margin-bottom:18px;color:var(--cobalt);font-family:IBM Plex Mono,Consolas,monospace;font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.document-page-header address{min-width:0;display:grid;align-content:end;justify-items:end;gap:5px;color:var(--muted);font-size:.72rem;font-style:normal;line-height:1.35;text-align:right}.document-page-header address a{max-width:100%;overflow-wrap:anywhere;text-underline-offset:3px}.document-block{padding-top:30px}.document-block>h3,.document-block--columns h3{margin:0 0 16px;color:var(--cobalt);font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.document-block p,.letter-copy p{margin:0;font-size:clamp(.88rem,1.3vw,.98rem);line-height:1.65}.document-projects{display:grid;gap:22px}.document-projects>div,.document-compact-item{padding-top:18px;border-top:1px solid var(--soft-line)}.document-projects h4,.document-compact-item h4{margin:0 0 5px;font-size:1rem;line-height:1.3}.document-projects h4 a{display:inline-flex;align-items:center;gap:5px;color:inherit;text-underline-offset:3px}.document-projects .document-meta,.document-compact-item .document-meta{margin-bottom:8px;color:var(--muted);font-family:IBM Plex Mono,Consolas,monospace;font-size:.65rem;line-height:1.45}.document-block--columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px}.document-compact-item+.document-compact-item{margin-top:18px}.document-certificate,.document-languages{margin-top:18px!important;padding-top:15px;border-top:1px solid var(--soft-line)}.document-block--tools{margin-top:30px;padding:20px;background:var(--acid)}.document-block--tools h3{color:var(--ink)}.document-page--letter{width:min(850px,100%)}.letter-copy{max-width:710px;margin:0 auto;padding-top:clamp(42px,6vw,72px)}.letter-copy p{margin-bottom:22px}.letter-copy .letter-subject{margin-bottom:42px;font-weight:700}@keyframes document-flight-arrive{0%{opacity:.82;transform:translate3d(var(--document-flight-x),var(--document-flight-y),0) scale(var(--document-flight-scale)) rotate(var(--document-flight-rotate))}15%{opacity:1}74%{opacity:1;transform:translateZ(0) scale(1.018) rotate(-.22deg)}88%{opacity:.94;transform:translateZ(0) scale(1) rotate(0)}to{opacity:0;transform:translateZ(0) scale(1) rotate(0)}}@keyframes document-flight-return{0%{opacity:0;transform:translateZ(0) scale(1) rotate(0)}12%{opacity:1}76%{opacity:1}to{opacity:.08;transform:translate3d(var(--document-flight-x),var(--document-flight-y),0) scale(var(--document-flight-scale)) rotate(var(--document-flight-rotate))}}@keyframes document-reader-arrive{0%,62%{opacity:0;transform:scale(.992)}to{opacity:1;transform:scale(1)}}@keyframes document-reader-leave{0%,12%{opacity:1;transform:scale(1)}42%,to{opacity:0;transform:scale(.992)}}@keyframes page-unfold{0%{opacity:0;transform:translate3d(9%,0,0) scale(.99)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes page-unfold-back{0%{opacity:0;transform:translate3d(-9%,0,0) scale(.99)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes document-backdrop-arrive{0%{background-color:#15151200}to{background-color:#151512a3}}@keyframes document-backdrop-leave{0%{background-color:#151512a3}to{background-color:#15151200}}.about-section{padding:clamp(92px,10vw,150px) 0;border-bottom:2px solid var(--ink);background:var(--acid)}.about-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.about-layout>.section-label{grid-column:1 / 3;padding-top:7px}.about-layout>div:nth-child(2){grid-column:3 / 9}.about-layout h2{margin:0;font-size:clamp(2.9rem,5.5vw,5.5rem);font-weight:650;letter-spacing:-.06em;line-height:.96}.about-lead{max-width:720px;margin:42px 0 0;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.45}.about-copy{grid-column:9 / 13;align-self:end;padding-top:24px;border-top:2px solid var(--ink)}.about-copy p{margin-bottom:22px;font-size:.96rem;line-height:1.65}.about-copy p:last-child{margin-bottom:0}.contact-section{padding:clamp(84px,9vw,132px) 0;background:var(--orange)}.contact-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.contact-layout>.section-label{grid-column:1 / 3;padding-top:7px}.contact-layout h2{grid-column:3 / 10;margin:0;font-size:clamp(3.2rem,6.2vw,6.3rem);font-weight:670;letter-spacing:-.065em;line-height:.92}.contact-layout>p:nth-of-type(2){grid-column:10 / 13;align-self:end;margin:0;font-size:.98rem;line-height:1.6}.contact-email{grid-column:3 / 10;min-height:62px;display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:16px;margin-top:54px;padding:0 18px;border:2px solid var(--ink);background:var(--paper);font-size:clamp(.88rem,1.4vw,1.12rem);font-weight:700;text-decoration:none;transition:background-color var(--ease),color var(--ease)}.contact-email:hover{background:var(--ink);color:var(--paper)}.contact-email span{overflow-wrap:anywhere}.contact-links{grid-column:10 / 13;align-self:end;display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:54px}.contact-links a{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:700;text-underline-offset:5px}.site-footer{min-height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;background:var(--ink);color:var(--paper);font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem}.site-footer p{margin:0}.site-footer p:nth-child(2){text-align:center}.site-footer a{min-height:44px;display:inline-flex;align-items:center;justify-self:end;text-underline-offset:4px}a:focus-visible,button:focus-visible,summary:focus-visible,main:focus-visible,section[id]:focus-visible h2{outline:3px solid var(--focus);outline-offset:4px}main:focus-visible{outline-offset:-5px}section[id]:focus-visible h2{outline-offset:6px}noscript{display:block;padding:14px 20px;border-bottom:2px solid var(--ink);background:var(--acid);color:var(--ink);text-align:center}@media(max-width:1100px){.intro h1{font-size:clamp(3.6rem,7vw,5.4rem)}.index-entry{grid-template-columns:34px minmax(150px,.7fr) minmax(180px,1fr) minmax(100px,.5fr);gap:14px}}@media(max-width:900px){:root{--header-height: 64px}.page-grid{padding-inline:24px}.site-header{height:var(--header-height);grid-template-columns:1fr auto;padding-inline:20px}.desktop-nav,.header-contact{display:none}.mobile-menu{position:relative;display:block;justify-self:end}.mobile-menu summary{min-width:64px;min-height:44px;display:grid;place-items:center;border:2px solid var(--ink);background:var(--porcelain);cursor:pointer;font-size:.78rem;font-weight:700;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu[open] summary{background:var(--ink);color:var(--paper)}.mobile-panel{position:absolute;z-index:50;top:50px;right:0;width:min(78vw,320px);border:2px solid var(--ink);background:var(--paper)}.mobile-nav{display:grid}.mobile-nav a,.mobile-email{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--soft-line);font-size:.88rem;font-weight:650;text-decoration:none}.mobile-nav a:hover,.mobile-email:hover{background:var(--acid)}.mobile-email{border-bottom:0;background:var(--orange)}.intro-grid,.section-heading,.project-index,.method-layout,.skills-list>div,.about-layout,.contact-layout{grid-template-columns:repeat(6,minmax(0,1fr))}.intro-kicker{grid-column:1 / 3}.intro-title{grid-column:1 / 5;grid-row:2}.availability{grid-column:5 / 7;grid-row:2}.section-heading>.section-label{grid-column:1 / 2}.section-heading>h2{grid-column:2 / 5}.section-heading>p:last-child{grid-column:5 / 7}.project-index{gap:46px 24px}.index-heading,.index-list{grid-column:1 / 7}.index-entry{grid-template-columns:36px minmax(130px,.8fr) minmax(180px,1fr) minmax(100px,.5fr)}.method-intro{grid-column:1 / 4}.method-steps{grid-column:4 / 7}.method-steps li{grid-template-columns:38px 1fr}.method-steps p{grid-column:2}.skills-list>div>span{grid-column:1}.skills-list dt{grid-column:2 / 3}.skills-list dd{grid-column:3 / 7}.about-layout>.section-label{grid-column:1 / 2}.about-layout>div:nth-child(2){grid-column:2 / 5}.about-copy{grid-column:5 / 7}.contact-layout>.section-label{grid-column:1 / 2}.contact-layout h2,.contact-email{grid-column:2 / 5}.contact-layout>p:nth-of-type(2),.contact-links{grid-column:5 / 7}.documents-layout{grid-template-columns:minmax(0,1fr)}.documents-copy,.document-deck{grid-column:1}.documents-copy{max-width:720px}.document-deck{width:min(100%,720px);min-height:620px;justify-self:center}.document-viewer-toolbar{grid-template-columns:1fr auto}.document-tabs{grid-column:1 / -1;grid-row:2;justify-self:center}}@media(max-width:680px){.intro{padding-top:38px;padding-bottom:44px}.intro-grid,.section-heading,.project-index,.method-layout,.skills-list>div,.about-layout,.contact-layout{grid-template-columns:minmax(0,1fr)}.intro-kicker,.intro-title,.availability,.section-heading>.section-label,.section-heading>h2,.section-heading>p:last-child,.index-heading,.index-list,.method-intro,.method-steps,.skills-list>div>span,.skills-list dt,.skills-list dd,.about-layout>.section-label,.about-layout>div:nth-child(2),.about-copy,.contact-layout>.section-label,.contact-layout h2,.contact-layout>p:nth-of-type(2),.contact-email,.contact-links{grid-column:1}.intro-kicker,.intro-title,.availability{grid-row:auto}.intro-kicker{display:flex;justify-content:space-between;gap:18px}.intro-title{margin-top:24px}.intro h1{font-size:clamp(3.05rem,15.5vw,4.5rem);line-height:.92}.availability{margin-top:18px}.skills-section,.work-section,.method-section,.documents-section,.about-section,.contact-section{padding-top:82px;padding-bottom:82px}.section-heading{gap:24px}.section-heading>h2{font-size:clamp(2.55rem,12vw,3.7rem)}.section-heading>p:last-child{max-width:42rem}.case-list{margin-top:72px}.case-file{padding-bottom:88px}.case-rule{margin-bottom:42px}.project-index{gap:38px;padding-top:72px}.index-entry{min-height:0;grid-template-columns:32px minmax(0,1fr);gap:10px 12px;padding:22px 0}.index-number{grid-column:1;grid-row:1 / 3}.index-name,.index-copy,.index-actions{grid-column:2}.index-actions{display:flex;flex-wrap:wrap;gap:12px 20px}.method-layout{gap:58px}.method-intro h2{margin:28px 0;font-size:clamp(2.55rem,12vw,3.7rem)}.method-steps li{grid-template-columns:38px minmax(0,1fr)}.skills-list{margin-top:56px}.skills-list>div{min-height:0;grid-template-columns:34px minmax(0,1fr);gap:8px 12px;align-items:start;padding:22px 0}.skills-list>div>span{grid-column:1;grid-row:1 / 3}.skills-list dt,.skills-list dd{grid-column:2}.about-layout{gap:28px}.about-layout h2{font-size:clamp(2.65rem,12.5vw,4rem)}.about-lead{margin-top:32px}.about-copy{margin-top:18px}.contact-layout{gap:28px}.contact-layout h2{font-size:clamp(3rem,14vw,4.6rem)}.contact-email,.contact-links{margin-top:14px}.documents-copy h2{font-size:clamp(2.65rem,12.5vw,4rem)}.document-list button{min-height:94px;grid-template-columns:34px minmax(0,1fr) 24px;gap:12px}.document-deck{min-height:clamp(500px,132vw,610px)}.document-paper,.document-shadow{width:min(68%,360px)}.document-viewer{padding:8px}.document-viewer-toolbar{min-height:0;gap:8px 10px;padding:8px}.document-viewer-toolbar>div:first-child{min-width:0}.document-viewer-toolbar>div:first-child p{display:none}.document-viewer-actions{gap:6px}.document-viewer-actions a{width:46px;padding:0;overflow:hidden;font-size:0}.document-tabs{width:100%}.document-tabs button{min-width:0;flex:1}.document-viewer-canvas{padding:14px}.document-page{padding:28px 22px 36px}.document-page-header{grid-template-columns:minmax(0,1fr);gap:20px}.document-page-header address{justify-items:start;text-align:left}.document-block--columns{grid-template-columns:minmax(0,1fr);gap:34px}.letter-copy{padding-top:40px}.site-footer{min-height:126px;grid-template-columns:1fr auto;align-content:center;gap:6px 18px}.site-footer p:nth-child(2){text-align:right}.site-footer a{grid-column:1 / -1;justify-self:start}}@media(max-width:380px){.page-grid{padding-inline:16px}.site-header{padding-inline:14px}.intro{padding-top:30px}.intro-kicker{font-size:.68rem}.intro-title{margin-top:16px}.intro h1{font-size:clamp(2.7rem,14.5vw,3.3rem)}.availability{margin-top:12px}.contact-email{padding-inline:12px;font-size:.82rem}.document-deck{min-height:450px}.document-paper,.document-shadow{width:72%}.document-paper--cv,.document-paper--letter{padding:24px 21px}.document-deck-hint{right:14px;bottom:10px;left:14px}.document-viewer-canvas{padding:8px}.document-page{padding:24px 17px 32px}.document-page-header h2{font-size:2.35rem}}@media(max-width:900px){.hero-motion{right:-190px;width:520px}.site-content--ready .hero-motion{opacity:.2}}@media(max-width:680px){.hero-motion{top:94px;right:-236px;width:480px}.site-content--ready .hero-motion{opacity:.14}.motion-ready [data-reveal],.motion-ready .intro-kicker,.motion-ready .intro-title,.motion-ready .availability,.motion-ready .section-heading,.motion-ready .case-file,.motion-ready .project-index,.motion-ready .method-intro,.motion-ready .skills-intro,.motion-ready .skills-list,.motion-ready .documents-copy,.motion-ready .document-deck,.motion-ready .about-copy,.motion-ready .about-facts,.motion-ready .contact-inner{transform:translate3d(0,18px,0) scale(.992)}.method-current{margin-top:34px}}@media(max-width:680px){.document-viewer-shell{border-radius:18px}}@media(prefers-reduced-motion:reduce){.hero-motion-stack{animation:none!important}.document-flight{display:none!important}.document-viewer[data-flight-ready=true] .document-viewer-shell{visibility:visible;opacity:1;transform:none}html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}}.project-notes>.project-limit{margin:0 0 18px;padding:14px 16px;border-left:3px solid var(--orange);background:#ece8dd;color:var(--muted);font-size:.9rem;line-height:1.6}.project-notes>.project-limit strong{display:block;margin-bottom:5px;color:var(--ink);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.project-checks dl{margin-top:18px}.project-checks summary{min-height:44px;display:flex;align-items:center;gap:10px}.project-checks summary:before{content:"+";font-size:1.2rem}.project-checks[open] summary:before{content:"−"}.intro{padding-block:clamp(40px,5vw,72px)}.intro-kicker{grid-column:1 / -1;display:flex;justify-content:space-between;margin:0 0 20px}.intro-title{grid-column:1 / 9}.intro h1{font-size:clamp(3.3rem,6.6vw,6.1rem);line-height:.95;max-width:none}.intro-title>.intro-description{max-width:49ch;margin:26px 0;font-family:inherit;font-size:clamp(1rem,1.5vw,1.18rem);font-weight:400;line-height:1.6;letter-spacing:0;text-transform:none;color:var(--muted)}.intro-actions,.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.primary-action,.secondary-action{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:12px;border:1px solid var(--ink);padding:13px 20px;font-size:.88rem;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer;transition:background-color .16s,color .16s}.primary-action{background:var(--ink);color:var(--paper)}.secondary-action{background:var(--paper);color:var(--ink)}.primary-action:hover{background:var(--cobalt)}.secondary-action:hover{background:var(--acid)}.availability{grid-column:10 / 13;align-self:end;background:var(--porcelain)}.site-content--ready .hero-motion{opacity:.22}.hero-motion{top:5%;right:-5%;width:34%}.work-section{padding-top:52px}.work-section>.section-heading{align-items:start;margin-bottom:38px}.section-heading>h2{font-size:clamp(2.2rem,4vw,3.8rem)}.section-heading>p:last-child{font-size:.94rem}.case-list{padding-top:0;margin-top:38px}.demo-launchpad{padding-block:24px 32px;border-block:1px solid var(--soft-line)}.demo-launchpad-heading{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:18px}.demo-launchpad-heading strong{font-size:1rem}.demo-launchpad-heading span{font-size:.84rem;color:var(--muted)}.demo-launchpad-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.demo-launchpad-links a{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:60px;padding:14px 18px;border:1px solid var(--soft-line);font-size:.92rem;text-decoration:none;background:var(--porcelain)}.demo-launchpad-links a:hover{background:var(--acid)}.demo-launchpad-links svg{flex:none}@media(max-width:680px){.demo-launchpad-links{grid-template-columns:1fr}.demo-launchpad-links a{min-height:48px}.demo-launchpad-heading{gap:8px}}.case-file{padding-block:0 44px;scroll-margin-top:calc(var(--header-height) + 28px)}.case-file+.case-file{margin-top:44px}.case-rule{margin-bottom:26px}.project-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.project-heading .section-label{margin-bottom:12px}.project-heading h3,.product-sample h3{margin:0;font-size:clamp(2rem,4vw,3.6rem);font-weight:650;letter-spacing:-.05em;line-height:1.08}.project-summary{max-width:75ch;margin-block:20px 12px;font-size:1.1rem;line-height:1.55}.project-stack{color:var(--muted);font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;line-height:1.75}.project-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,56px);margin-top:28px}.project-preview{min-width:0;margin:0;border:1px solid var(--soft-line);background:var(--paper)}.project-preview>a{display:block;padding:14px;background:#e8e5db}.project-preview img{display:block;width:100%;height:auto;border:1px solid var(--soft-line)}.project-preview figcaption{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;color:var(--muted);font-family:IBM Plex Mono,Consolas,monospace;font-size:.64rem;line-height:1.5}.project-preview figcaption span:last-child{flex-shrink:0}.project-notes dl{margin:0}.project-notes dl>div{padding-bottom:20px}.project-notes dt{margin-bottom:7px;font-size:.7rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.project-notes dd{margin:0;color:var(--muted);font-size:.94rem;line-height:1.6}.project-notes dl>.project-limit{padding:16px 18px;border-left:3px solid var(--orange);background:#ece8dd}.project-links{margin-top:22px;gap:12px 22px}.project-links>a:not(.primary-action){display:inline-flex;align-items:center;min-height:44px;gap:6px;font-size:.84rem;text-underline-offset:4px}.contract-workflow{padding:clamp(22px,3vw,40px);background:var(--ink);color:var(--paper)}.contract-workflow>.section-label{color:var(--acid)}.contract-inputs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-block:32px}.contract-inputs>span{padding:18px;border:1px solid #716d60;color:#cbc6ba;font-size:.8rem;line-height:1.7}.contract-inputs strong{color:var(--paper);font-size:clamp(1.2rem,2vw,2rem);font-weight:500}.contract-compare{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-block:1px solid #716d60;font-size:.94rem}.contract-outputs{display:flex;gap:10px;flex-wrap:wrap;margin-block:24px}.contract-outputs span{padding:10px 14px;background:var(--acid);color:var(--ink);font-family:IBM Plex Mono,Consolas,monospace;font-size:.8rem}.contract-workflow>p{margin-bottom:0;max-width:46ch;color:#cbc6ba;font-size:.84rem;line-height:1.65}.contract-footnote{display:block;max-width:46ch;color:#cbc6ba;font-size:.84rem;line-height:1.65}.project-demo-mode{display:inline-flex;margin:4px 0 0;padding:7px 10px;border:1px solid var(--soft-line);color:var(--cobalt);background:var(--porcelain);font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem;letter-spacing:.03em}.case-visual{position:relative;display:flex;flex-direction:column;min-height:390px;padding:clamp(22px,3vw,40px);overflow:hidden;border:1px solid var(--soft-line);text-decoration:none;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease}.case-visual:hover,.case-visual:focus-visible{transform:translateY(-3px);box-shadow:0 12px #15151222}.case-visual__eyebrow{position:relative;z-index:1;font-family:IBM Plex Mono,Consolas,monospace;font-size:.68rem;letter-spacing:.11em}.case-visual__footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:18px;border-top:1px solid currentColor;font-size:.86rem;font-weight:650}.case-visual__footer svg{flex:none;transition:transform .24s cubic-bezier(.16,1,.3,1)}.case-visual:hover .case-visual__footer svg,.case-visual:focus-visible .case-visual__footer svg{transform:translate(5px)}.case-visual--toolcall{background:#1a2744;color:#f4f1e8}.case-visual--toolcall:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";opacity:.16;background-image:linear-gradient(#7d91b7 1px,transparent 1px),linear-gradient(90deg,#7d91b7 1px,transparent 1px);background-size:46px 46px;pointer-events:none}.trace-path{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:46px 0 36px}.trace-path span{position:relative;display:flex;align-items:center;min-height:62px;padding:9px;border:1px solid #8294b5;background:#223353;font-family:IBM Plex Mono,Consolas,monospace;font-size:clamp(.58rem,.8vw,.73rem)}.trace-path span+span:before{position:absolute;left:0;top:50%;transform:translate(-17px,-50%);content:"→";color:var(--acid)}.trace-verdict{position:relative;display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:42px}.trace-verdict strong{color:#ff7254;font-size:clamp(4rem,8vw,7rem);letter-spacing:-.08em;line-height:.8}.trace-verdict span{max-width:16ch;font-size:.82rem;line-height:1.45;text-align:right}.case-visual--entity{background:#e7edfb;color:#161e30}.case-visual--entity:before{position:absolute;top:0;left:0;width:100%;height:6px;content:"";background:var(--cobalt)}.record-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0 22px}.record-pair>span{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px;background:#fff;border:1px solid #b4c4e4}.record-pair small,.record-pair em{font-family:IBM Plex Mono,Consolas,monospace;font-size:.66rem;font-style:normal}.record-pair small{color:#4b5f88}.record-pair strong{font-size:clamp(.9rem,1.5vw,1.15rem);line-height:1.25}.record-pair em{width:fit-content;padding:5px 7px;background:#fff0d9;color:#714200}.record-verdict{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 18px;margin-bottom:32px}.record-verdict strong{color:var(--cobalt);font-size:clamp(2.4rem,5vw,4.4rem);letter-spacing:-.07em;line-height:1}.record-verdict span{max-width:24ch;font-size:.82rem;line-height:1.45}.project-proof{padding:17px 18px;border:1px solid var(--soft-line);background:var(--porcelain)}.project-proof strong{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.project-proof p{margin:8px 0 7px;color:var(--muted);font-size:.88rem;line-height:1.55}.project-proof a{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:.82rem;text-underline-offset:4px}.product-sample{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(28px,5vw,68px);align-items:center;padding-block:56px;border-block:1px solid var(--soft-line)}.product-sample h3{margin-bottom:24px}.product-sample p:not(.section-label,.project-stack){font-size:.98rem;line-height:1.65;color:var(--muted)}.product-sample .sample-limit{border-left:3px solid var(--orange);padding-left:15px}.project-index{padding-block:56px 72px}.index-heading h3{font-size:clamp(1.8rem,3vw,2.6rem)}.method-section,.skills-section,.documents-section,.about-section{padding-block:clamp(56px,6vw,86px)}.method-intro h2,.documents-copy h2,.about-layout h2{font-size:clamp(2.2rem,4vw,3.8rem)}.method-intro>p{max-width:56ch;line-height:1.65}.method-current{margin-top:26px}.method-steps li{padding-block:18px}.method-steps h3{font-size:1.5rem}.skills-list{margin-top:32px}.contact-section{padding-block:clamp(60px,8vw,104px)}.legacy-repository{padding-top:80px}.document-viewer,.document-viewer.is-closing,.document-viewer[data-flight-ready=true] .document-flight,.document-viewer[data-flight-ready=true] .document-viewer-shell,.document-viewer[data-flight-ready=true].is-closing .document-flight,.document-viewer[data-flight-ready=true].is-closing .document-viewer-shell{animation-duration:.22s}@media(max-width:1100px){.intro-title{grid-column:1 / 9}.availability{grid-column:9 / 13}.project-body{grid-template-columns:1.1fr 1fr;gap:26px}}@media(max-width:900px){.intro-title{grid-column:1 / -1}.intro h1{font-size:clamp(3.5rem,9vw,5.4rem);max-width:14ch}.availability{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:10px}.availability p{margin:0}.availability p:nth-of-type(3){display:none}.hero-motion{width:45%;right:-8%;top:8%}.project-body{grid-template-columns:1fr;gap:26px}.project-notes dl{display:grid;grid-template-columns:1fr 1fr;gap:22px}.project-notes dl>div{padding:0}.project-notes dl>.project-limit{grid-column:1 / -1}.product-sample{grid-template-columns:1fr}.product-sample .project-preview{max-width:760px}}@media(max-width:680px){.intro{padding-block:30px 40px}.intro-kicker{gap:12px;margin-bottom:14px;font-size:.66rem}.intro-title{grid-column:1 / -1}.intro h1{font-size:clamp(3rem,10.3vw,4.4rem);line-height:1}.intro-title>p{font-size:.68rem}.intro-title>.intro-description{font-size:1rem;margin-block:20px}.intro-actions{gap:10px}.primary-action,.secondary-action{font-size:.82rem;padding-inline:14px}.availability{gap:2px 16px;margin-top:0;padding-top:14px}.availability p{font-size:.78rem}.hero-motion{display:none}.work-section{padding-top:36px}.section-heading{gap:16px}.section-heading>h2{font-size:2.25rem}.section-heading>.section-label{padding-top:0}.project-heading{align-items:flex-start;flex-direction:column;gap:14px}.project-heading h3{font-size:2.5rem}.project-summary{font-size:1rem;margin-top:18px}.project-body{margin-top:20px}.project-preview>a{padding:8px}.project-preview figcaption{padding:10px;font-size:.6rem}.case-visual{min-height:350px;padding:22px}.trace-path{margin-block:35px 28px}.trace-path span{min-height:55px}.trace-verdict{margin-bottom:30px}.record-pair>span{padding:12px;gap:8px}.project-notes dl{grid-template-columns:1fr;gap:20px}.project-notes dd{font-size:.94rem}.case-file{padding-bottom:26px}.case-file+.case-file{margin-top:26px}.product-sample{padding-block:40px}.project-index{padding-block:40px 50px}.method-section,.skills-section,.documents-section,.about-section{padding-block:48px}}@media(prefers-reduced-motion:reduce){.document-viewer,.document-viewer *,.hero-motion,.hero-motion *{animation:none!important;transition:none!important}}.selected-project-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-block:20px;border-block:1px solid var(--soft-line)}.selected-project-nav a{display:flex;align-items:center;gap:12px;min-height:48px;text-decoration:none;font-size:.95rem}.selected-project-nav a span{font-family:IBM Plex Mono,monospace;font-size:.7rem;color:var(--muted)}.selected-project-nav svg{margin-left:auto;flex:none}.selected-project-nav a:hover{color:var(--cobalt)}.demo-context{font-size:.8rem;color:var(--muted);padding-top:16px}.project-checks{margin-top:24px;border-top:1px solid var(--soft-line)}.project-checks summary{min-height:44px;padding-block:14px;cursor:pointer;font-size:.84rem}.project-checks p,.project-checks>a{font-size:.86rem;line-height:1.6;color:var(--muted)}a.contract-workflow{display:block;text-decoration:none}a.contract-workflow:hover{background:#252620}.project-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.contribution-boundaries{margin-block:24px}.contribution-boundaries>div{padding-block:15px;border-top:1px solid var(--soft-line)}.contribution-boundaries dt{font-weight:650;font-size:.9rem;margin-bottom:6px}.contribution-boundaries dd{margin:0;font-size:.93rem;line-height:1.6;color:var(--muted)}.demo-launchpad-heading>a{display:inline-flex;align-items:center;min-height:44px;gap:10px;font-size:.84rem}.project-index .index-entry{padding-block:24px}@media(max-width:900px){.project-body{grid-template-columns:1fr}.selected-project-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.selected-project-nav a{font-size:.83rem}}@media(max-width:680px){.selected-project-nav{grid-template-columns:1fr;gap:0;padding-block:8px}.selected-project-nav a{min-height:48px}.project-preview figcaption{flex-wrap:wrap}.document-viewer-toolbar .document-tabs{flex-wrap:wrap}.availability p:nth-of-type(3){display:block}.availability{align-items:flex-start;gap:8px}}.project-links .primary-action,.demo-launchpad-links a,.contract-workflow,.project-preview>a{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,background-color .22s ease,border-color .22s ease}.project-links .primary-action:hover,.project-links .primary-action:focus-visible,.demo-launchpad-links a:hover,.demo-launchpad-links a:focus-visible{transform:translateY(-3px);box-shadow:0 10px #1515121c}.project-links .primary-action svg,.demo-launchpad-links a svg,.selected-project-nav a svg,.contract-compare svg{transition:transform .24s cubic-bezier(.16,1,.3,1)}.project-links .primary-action:hover svg,.project-links .primary-action:focus-visible svg,.demo-launchpad-links a:hover svg,.demo-launchpad-links a:focus-visible svg,.selected-project-nav a:hover svg,.selected-project-nav a:focus-visible svg,.contract-workflow:hover .contract-compare svg,.contract-workflow:focus-visible .contract-compare svg{transform:translate(5px)}.contract-workflow:hover,.contract-workflow:focus-visible{transform:translateY(-3px);box-shadow:0 12px #15151222}.project-preview>a{overflow:hidden}.project-preview>a:hover,.project-preview>a:focus-visible{background-color:#dbd6c9}.project-preview img{transition:transform .35s cubic-bezier(.16,1,.3,1)}.project-preview>a:hover img,.project-preview>a:focus-visible img{transform:scale(1.025)}@media(prefers-reduced-motion:reduce){.project-links .primary-action,.demo-launchpad-links a,.contract-workflow,.project-preview>a,.project-preview img,.project-links .primary-action svg,.demo-launchpad-links a svg,.selected-project-nav a svg,.contract-compare svg{transition:none}.project-links .primary-action:hover,.project-links .primary-action:focus-visible,.demo-launchpad-links a:hover,.demo-launchpad-links a:focus-visible,.contract-workflow:hover,.contract-workflow:focus-visible,.project-preview>a:hover img,.project-preview>a:focus-visible img{transform:none}.case-visual,.case-visual__footer svg{transition:none}.case-visual:hover,.case-visual:focus-visible,.case-visual:hover .case-visual__footer svg,.case-visual:focus-visible .case-visual__footer svg{transform:none}}.method-layout>.contribution-boundaries{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-block:0}.method-section .contribution-boundaries dd{color:#d5d1c7}.method-layout>.method-current{grid-column:1/-1;margin-top:0;max-width:none}.method-layout>.method-current p{max-width:85ch}.documents-copy>.section-label,.documents-lead{color:#fff}@media(max-width:900px){.method-layout>.contribution-boundaries{grid-template-columns:1fr;gap:0}}.certificates-section{padding-block:clamp(72px,8vw,120px);border-bottom:2px solid var(--ink);background:var(--paper)}.certificate-list{list-style:none;margin-block:56px 0}.certificate-list li{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2.2fr) auto;align-items:start;gap:32px;padding-block:28px;border-top:1px solid var(--soft-line)}.certificate-list li:last-child{border-bottom:1px solid var(--soft-line)}.certificate-issuer{display:grid;gap:8px}.certificate-issuer span{font-weight:650}.certificate-issuer time{color:var(--muted);font-size:.82rem}.certificate-detail h3{margin:0;font-size:1.18rem;line-height:1.4}.certificate-detail p{margin:10px 0 0;color:var(--muted);font-size:.92rem;line-height:1.6}.certificate-list li>a,.certificate-list li>button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font-size:.86rem;white-space:nowrap}.certificate-list li>button:hover,.certificate-list li>button:focus-visible{color:var(--cobalt)}.certificate-list a svg,.certificate-list button svg{flex-shrink:0}.availability .availability-certificates{color:var(--cobalt);font-size:.78rem;line-height:1.6}@media(max-width:900px){.certificate-list li{grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:16px 24px}.certificate-list li>a,.certificate-list li>button{grid-column:2;justify-self:start}}@media(max-width:600px){.certificate-list li{grid-template-columns:minmax(0,1fr);gap:14px}.certificate-list li>a,.certificate-list li>button{grid-column:1}.certificate-issuer{display:flex;justify-content:space-between;gap:16px}}.document-viewer[data-family=certificate] .document-viewer-toolbar{grid-template-areas:"title actions" "tabs tabs";grid-template-columns:minmax(0,1fr) auto}.document-viewer[data-family=certificate] .document-viewer-canvas{overflow-x:hidden}.document-viewer[data-family=certificate] .document-viewer-toolbar>div:first-child{grid-area:title;min-width:0}.document-viewer[data-family=certificate] .document-tabs{grid-area:tabs;width:100%;flex-wrap:wrap}.document-viewer[data-family=certificate] .document-tabs button{min-width:0;min-height:44px;flex:1 1 150px;padding-inline:10px;white-space:normal;line-height:1.25}.document-viewer[data-family=certificate] .document-viewer-actions{grid-area:actions;min-width:0;flex-wrap:wrap;align-items:center}.document-viewer[data-family=certificate] .document-page--certificate{width:min(1320px,100%);padding:clamp(18px,3vw,42px)}.certificate-preview-heading{margin-bottom:clamp(16px,2.5vw,32px)}.certificate-preview-heading h3{margin:8px 0 0;font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.35}.certificate-preview-heading .document-page-kicker{margin:0}.certificate-preview-image{display:block;width:100%;height:auto;max-height:74dvh;object-fit:contain;background:#fff}.certificate-preview-error{min-height:35vh;display:grid;align-content:center;justify-items:center;gap:12px;text-align:center}.certificate-preview-error p{margin:0}.certificate-preview-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:18px;padding-top:14px;border-top:1px solid var(--soft-line)}.certificate-preview-links a{min-height:44px;display:inline-flex;align-items:center;gap:8px;color:inherit;font-size:.84rem}@media(max-width:680px){.document-viewer[data-family=certificate] .document-viewer-toolbar{grid-template-areas:"title actions" "tabs tabs";grid-template-columns:minmax(0,1fr) auto}.document-viewer[data-family=certificate] .document-tabs button{flex-basis:120px}.document-viewer[data-family=certificate] .document-viewer-actions a{width:auto;max-width:100%;padding-inline:8px;overflow:visible;font-size:.65rem;white-space:normal}.document-viewer[data-family=certificate] .document-viewer-actions{gap:4px}.document-viewer[data-family=certificate] .document-page--certificate{padding:18px 12px 22px}.certificate-preview-image{max-height:62dvh}}
