@font-face{font-family:Inter;src:url('assets/inter.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#1d1d1f;background:#fff;font-synthesis:none;--blue:#2764e7;--blue-hover:#1856d6;--muted:#6e6e73;--light:#f5f5f7;--line:#d2d2d7;--nav-height:52px;-webkit-font-smoothing:antialiased;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:78px}body{margin:0;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}a:focus-visible,button:focus-visible{outline:3px solid #79a6ff;outline-offset:5px}::selection{background:#c6dbff;color:#14213b}h1,h2,h3,h4,p{margin:0}img{max-width:100%;display:block}ul{margin:0;padding:0;list-style:none}.skip{position:fixed;top:-100px;left:20px;padding:14px 22px;background:white;border-radius:10px;box-shadow:0 4px 15px #0002;z-index:100}.skip:focus{top:12px}.site-header{position:sticky;top:0;height:var(--nav-height);z-index:40;background:#fafafccc;backdrop-filter:blur(24px) saturate(1.8);border-bottom:1px solid #d2d2d740;transition:box-shadow .3s}.site-header.scrolled{box-shadow:0 1px 0 #d2d2d780}.nav-inner{height:100%;display:flex;align-items:center;max-width:1100px;padding:0 30px;margin:auto;gap:60px}.brand{font-size:26px;font-weight:750;letter-spacing:-2px;line-height:1}.brand span{color:var(--blue)}.desktop-nav{display:flex;align-items:center;justify-content:space-between;flex:1;font-size:12px;color:#434348}.desktop-nav a{padding:17px 0;transition:color .2s}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--blue)}.nav-contact{font-size:12px;white-space:nowrap;display:flex;gap:9px}.nav-contact:hover{color:var(--blue)}.menu-toggle,.mobile-nav{display:none}.availability{display:flex;justify-content:center;gap:9px;align-items:center;min-height:45px;padding:12px 20px;background:#fff;font-size:12px;color:#515156;text-align:center}.availability a{color:var(--blue);white-space:nowrap}.availability a:hover{text-decoration:underline}.availability a span{font-size:17px;margin-left:2px}.hero{background:linear-gradient(180deg,#f5f5f7 0%,#f8f8fa 75%,#fff 100%);padding:46px 0 28px;overflow:clip;--hero-progress:0}.hero-copy{text-align:center;position:relative;z-index:5;padding:0 24px}.hero-eyebrow{font-size:17px;font-weight:500;color:#62626b;margin-bottom:10px;letter-spacing:-.025em}h1{font-size:clamp(54px,6.1vw,90px);letter-spacing:-.065em;font-weight:650;line-height:1.07}.hero-subtitle{font-size:24px;letter-spacing:-.025em;line-height:1.4;color:#60606a;margin-top:18px}.cta-row{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:25px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 23px;border:1px solid transparent;border-radius:999px;font-size:14px;line-height:1.4;font-weight:450;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s,transform .25s}.button.primary{background:var(--blue);color:#fff}.button.primary:hover{background:var(--blue-hover);box-shadow:0 4px 16px #2764e724}.button.outline{color:var(--blue);border-color:var(--blue);background:transparent}.button.outline:hover{background:var(--blue);color:white}.button:active{transform:scale(.98)}.hero-composition{position:relative;max-width:1250px;height:380px;margin:47px auto 0;isolation:isolate}.hero-composition:before{content:'';position:absolute;inset:45% 10% -20%;background:radial-gradient(ellipse,#c4ccf642,transparent 65%);z-index:-1;pointer-events:none}.app-window{position:absolute;overflow:clip;border-radius:15px;background:#fff;box-shadow:0 20px 45px -17px #18234645,0 1px 3px #14233515;border:1px solid #c2c9d055;will-change:transform}.window-bar{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:linear-gradient(#fbfcfd,#eef0f3);font-size:12px;color:#7a7c86;gap:20px}.window-dots{display:flex;gap:4px;flex-shrink:0}.window-dots i{height:6px;width:6px;border-radius:50%;background:#c4c7ce}.window-dots i:first-child{background:#edb4ae}.window-dots i:nth-child(2){background:#ebd39f}.window-dots i:nth-child(3){background:#b0cfad}.window-tail{font-size:12px;color:#999}.window-content{overflow:hidden;height:calc(100% - 31px)}.window-content img{width:100%;height:auto}.window-main{width:59%;max-width:720px;height:355px;left:50%;top:0;z-index:3;transform:translate3d(-50%,calc(var(--hero-progress)*20px),0) scale(calc(1 - var(--hero-progress)*.025))}.window-left{width:46%;height:300px;top:45px;left:3%;transform:translate3d(calc(var(--hero-progress)*-60px),calc(var(--hero-progress)*-13px),0) rotate(calc(-6deg - var(--hero-progress)*3deg));z-index:1}.window-right{width:43%;height:300px;top:47px;right:1.5%;transform:translate3d(calc(var(--hero-progress)*60px),calc(var(--hero-progress)*-8px),0) rotate(calc(6deg + var(--hero-progress)*3deg));z-index:2}.window-right .window-bar{background:#253338;color:#c6d5da}.window-right .window-content{background:#0d171c}.window-right .window-content img{transform:translateY(-18%)}.hero-signature{text-align:center;color:#75757c;font-size:14px;font-weight:450;margin-top:25px;letter-spacing:-.015em}.hero-signature span+span{margin-left:8px}.hero-signature span:first-child{color:#3264ce}.hero-signature span:nth-child(2){color:#7370b7}.project-lineup{background:white;padding:27px 24px 42px}.lineup-inner{max-width:710px;margin:auto;display:flex;justify-content:space-between;gap:28px}.lineup-inner a{display:flex;align-items:center;flex-direction:column;gap:13px;min-width:100px;font-size:12px;transition:color .25s}.lineup-inner a:hover{color:var(--blue)}.app-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#edf2fc;color:#4266a2;font-size:18px;font-weight:650;letter-spacing:-1.2px;box-shadow:inset 0 1px 0 #fff,0 3px 10px #3f547714;transition:transform .3s}.lineup-inner a:hover .app-mark{transform:translateY(-4px)}.mark-graph{background:linear-gradient(145deg,#edecfa,#d8daef);color:#7475ac}.mark-change{background:linear-gradient(145deg,#e7f1e8,#d2e2d1);color:#58845b}.mark-incident{background:linear-gradient(145deg,#d9eeee,#c1dddd);color:#477c83}.mark-trace{background:linear-gradient(145deg,#e6eee7,#cfe0d4);color:#5c8270}.mark-proof{background:linear-gradient(145deg,#e4e9f1,#d0d6e1);color:#5b6c88}.selected-work{background:#fff;padding-bottom:32px}.section-intro{max-width:1160px;padding:70px 32px 48px;margin:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:50px}.section-intro h2{font-size:48px;line-height:1.12;letter-spacing:-.045em;font-weight:650}.section-intro h2 span{color:#86868b}.section-intro p{font-size:17px;line-height:1.7;color:#6e6e73;margin-bottom:3px}.feature{margin:0 16px 16px;padding:68px 30px 30px;border-radius:30px;overflow:clip;position:relative;isolation:isolate}.feature-heading{text-align:center;position:relative;z-index:2}.product-name{font-size:19px;line-height:1.4;letter-spacing:-.03em;font-weight:600;margin-bottom:12px}.feature h3{font-size:clamp(42px,4.45vw,68px);line-height:1.04;letter-spacing:-.055em;font-weight:650}.gradient-text{background:linear-gradient(100deg,#347de3 5%,#7256bd 65%,#a86ea8 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.feature-summary{font-size:20px;line-height:1.5;color:#777780;letter-spacing:-.02em;margin-top:20px}.feature-graph{background:linear-gradient(180deg,#f4f3fb,#f2f2f8 65%,#f9f9fc)}.product-screen{max-width:985px;position:relative;width:90%;margin:47px auto 0;overflow:clip;box-shadow:0 27px 55px -30px #30345752,0 0 0 1px #ffffffc9;border-radius:18px;background:#fff;transform-origin:center bottom}.screen-top{height:35px;padding:0 15px;background:#f8f8fc;display:flex;align-items:center;justify-content:space-between;color:#83848a;font-size:12px;border-bottom:1px solid #e1e3ed;gap:15px}.screen-top .window-dots{gap:5px}.screen-top .window-dots i{width:7px;height:7px}.screen-image{height:425px;overflow:hidden}.screen-image img{width:100%;height:auto}.feature-caption{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:28px;font-size:12px;color:#757580}.feature-caption i{width:3px;height:3px;background:#b6b6bf;border-radius:50%}.feature-incident{background:#0c1118;color:#f5f5f7;padding-top:68px}.feature-incident:before{content:'';position:absolute;inset:35% -20% -30%;background:radial-gradient(ellipse,#24697b44,transparent 60%);z-index:-1}.feature-incident h3{color:#f1f3f5}.feature-incident .product-name{color:#b6cbda}.feature-incident .feature-summary{color:#a3b0bc}.feature-incident .button.outline{border-color:#72a9ff;color:#9bbdf9}.feature-incident .button.outline:hover{border-color:var(--blue);color:#fff}.incident-screen{background:#111a20;box-shadow:0 20px 70px -30px #57bdd759,0 0 0 1px #4e636d88}.incident-screen .screen-top{background:#24303a;border-color:#35444d;color:#a7b8c4}.incident-screen .screen-image{height:460px}.incident-screen .screen-image img{transform:translateY(-19%)}.feature-incident .feature-caption{color:#94a9b8}.feature-incident .feature-caption i{background:#576874}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 16px 16px}.mini-feature{background:#f5f6f7;border-radius:30px;overflow:clip;display:flex;flex-direction:column;padding-top:52px}.mini-heading{text-align:center;padding:0 26px}.mini-heading .product-name{font-size:18px;margin-bottom:13px}.mini-feature h3{font-size:36px;line-height:1.1;letter-spacing:-.045em;font-weight:650}.mini-heading>p:not(.product-name){font-size:16px;line-height:1.7;color:#777b7e;letter-spacing:-.015em;margin-top:16px}.inline-link{color:var(--blue);font-size:14px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.inline-link:hover{text-decoration:underline;text-underline-offset:4px}.mini-feature .cta-row{gap:23px;margin-top:23px}.mini-feature .button{font-size:13px;padding:10px 20px}.mini-screen{position:relative;height:310px;width:88%;max-width:630px;border-radius:18px 18px 0 0;margin:38px auto 0;border:5px solid #fff;border-bottom:0;overflow:hidden;box-shadow:0 12px 40px -12px #313b482e;background:white}.mini-screen img{width:100%;height:auto}.change-feature{background:linear-gradient(150deg,#f3f6f2,#edf1ed)}.trace-feature{background:linear-gradient(150deg,#f1f6fc,#ecf2fa)}.dark-screen{border-color:#293831;background:#0e1913}.proof-feature{max-width:1260px;margin:65px auto 55px;padding:45px 50px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}.proof-copy .product-name{color:#737985;font-size:18px}.proof-copy h3{font-size:56px;line-height:1.08;letter-spacing:-.05em;font-weight:650}.proof-copy>p:not(.product-name){font-size:18px;line-height:1.7;color:#797d84;max-width:405px;margin-top:22px}.proof-copy .cta-row{justify-content:flex-start;margin-top:25px;gap:24px}.evidence-flow{padding:30px;background:linear-gradient(145deg,#f2f6fc,#f8f9fb);border-radius:32px}.evidence-step{display:flex;align-items:center;gap:18px;padding:20px;background:#fff;border-radius:21px;box-shadow:0 3px 10px #2c527c08;position:relative}.evidence-icon{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;color:#4c7ec4;background:#f0f5fc;border-radius:13px}.evidence-icon svg{width:30px;height:30px}.evidence-step h4{font-size:19px;line-height:1.3;letter-spacing:-.025em;font-weight:550}.evidence-step p{font-size:13px;color:#8b9098;margin-top:4px}.step-number{margin-left:auto;color:#b5bbc5;font-size:12px}.flow-line{display:block;width:1px;height:23px;background:#ceddf0;margin-left:40px}.flow-caption{font-size:12px;text-align:center;color:#848d9c;margin:24px -8px 0}.all-work-link{display:flex;justify-content:center;align-items:center;gap:12px;color:var(--blue);font-size:17px;width:max-content;margin:25px auto 55px}.all-work-link:hover{text-decoration:underline;text-underline-offset:4px}.about{background:#f5f5f7;padding:90px 30px 100px}.about-intro{max-width:860px;margin:auto;text-align:center}.section-eyebrow{font-size:17px;font-weight:500;color:#7b7b80;margin-bottom:17px;letter-spacing:-.02em}.about h2{font-size:47px;line-height:1.16;letter-spacing:-.04em;font-weight:650;margin-bottom:25px}.about h2 span{color:#86868b}.about-intro>p:not(.section-eyebrow){max-width:650px;margin:0 auto 18px;color:#737378;font-size:18px;line-height:1.75;letter-spacing:-.015em}.about-intro .inline-link{font-size:17px;margin-top:10px}.about-details{max-width:1080px;display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:58px auto 0}.education-panel,.focus-panel{padding:42px;background:white;border-radius:30px}.about-details h3{font-size:30px;line-height:1.18;letter-spacing:-.035em;font-weight:600;margin-bottom:30px}.degree{display:flex;flex-direction:column;padding:20px 0;border-top:1px solid #e8e8ec;gap:6px}.degree strong{font-size:16px;font-weight:550;letter-spacing:-.015em}.degree span{font-size:14px;color:#7b7b81}.degree small{font-size:12px;color:#88888d}.focus-panel>p{font-size:16px;line-height:1.7;color:#7c7c82;margin-top:-7px}.skill-groups{margin-top:25px}.skill-groups>div{display:flex;gap:18px;padding:15px 0;border-top:1px solid #e8e8ec}.skill-groups span{font-size:13px;font-weight:550;min-width:52px;color:#346ed0}.skill-groups p{font-size:13px;line-height:1.6;color:#78787e}.experience{padding:95px 32px;max-width:1150px;margin:auto}.experience-heading{text-align:center;margin-bottom:45px}.experience h2{font-size:48px;line-height:1.12;letter-spacing:-.045em;font-weight:650}.experience-list{padding:0 22px}.experience-row{display:grid;grid-template-columns:58px 1fr 1fr;align-items:start;gap:26px;border-bottom:1px solid #e5e5ea;padding:35px 0}.experience-row:last-child{border-bottom:0}.employer-mark{width:56px;height:56px;display:grid;place-items:center;background:#f9f0f0;color:#a96b6b;font-size:14px;letter-spacing:-.7px;font-weight:650;border-radius:16px}.university-mark{background:#f4f0f4;color:#866b80}.bank-mark{background:#eff2f8;color:#64789d}.role-heading h3{font-size:20px;line-height:1.3;font-weight:550;letter-spacing:-.025em;margin:2px 0 7px}.role-heading p{font-size:14px;color:#75757a;line-height:1.5}.role-heading span{font-size:12px;color:#949499;display:block;margin-top:10px}.role-summary{font-size:16px;line-height:1.75;color:#7c7c82}.contact{background:linear-gradient(160deg,#f6f8fc,#f0f3fa);padding:90px 24px 95px;text-align:center}.contact-inner{max-width:850px;margin:auto}.contact .section-eyebrow{font-size:16px}.contact h2{font-size:clamp(48px,6vw,86px);line-height:1.05;font-weight:650;letter-spacing:-.055em;margin-top:22px}.contact p:not(.section-eyebrow){font-size:20px;line-height:1.6;color:#7c7f87;margin-top:26px;letter-spacing:-.015em}.contact .cta-row{margin-top:28px}.contact-email{display:block;width:max-content;max-width:100%;font-size:14px;color:#777f8b;margin:25px auto 0}.contact-email:hover{color:var(--blue)}.site-footer{background:#f5f5f7;padding:38px max(30px,calc((100% - 1080px)/2)) 22px;color:#77777d}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:25px;border-bottom:1px solid #dcdce0}.footer-brand{font-size:17px;letter-spacing:-.025em;color:#44444b;font-weight:550}.footer-brand span{display:block;font-weight:400;font-size:12px;color:#9999a0;margin-top:5px;letter-spacing:0}.footer-social{display:flex;gap:30px;font-size:12px}.footer-social a:hover{color:var(--blue)}.footer-social span{margin-left:5px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;font-size:12px;color:#909097}.footer-bottom a{display:flex;align-items:center;gap:10px}.js .reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.js .reveal.visible{opacity:1;transform:none}.js .product-screen.reveal{transform:translate3d(0,45px,0) scale(.975);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.js .product-screen.reveal.visible{transform:none}.case-dialog{border:0;padding:0;background:#fff;color:#1d1d1f;width:min(980px,calc(100% - 40px));max-height:90svh;border-radius:30px;margin:auto;overflow:auto;box-shadow:0 40px 100px #0003}.case-dialog::backdrop{background:#1a21326b;backdrop-filter:blur(15px)}.case-shell{padding:40px 55px 50px}.case-close{position:sticky;top:0;margin:0 0 30px auto;z-index:3;padding:9px 15px;display:flex;align-items:center;gap:13px;font-size:13px;color:#65656b;background:#f0f0f2dd;border-radius:99px;backdrop-filter:blur(15px)}.case-close span{font-size:21px;line-height:1}.case-kicker{font-size:12px;font-weight:500;color:#7d8795;letter-spacing:.035em;margin-bottom:18px}.case-dialog h2{font-size:48px;line-height:1.1;letter-spacing:-.05em;font-weight:600;margin-bottom:23px}.case-lead{font-size:20px;line-height:1.6;color:#74747b;letter-spacing:-.02em}.case-sections{display:grid;grid-template-columns:1fr 1fr;gap:38px 45px;margin:40px 0}.case-sections h3{font-size:12px;font-weight:550;color:#545d6d;letter-spacing:.035em;margin-bottom:15px}.case-sections p,.case-sections li{font-size:15px;line-height:1.8;color:#797982}.case-sections li{position:relative;padding-left:17px;margin-bottom:8px}.case-sections li:before{position:absolute;left:0;top:.75em;content:'';height:4px;width:4px;background:#7297d6;border-radius:50%}.case-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:25px;border-top:1px solid #e7e7ed}.case-footer .mono{font-size:12px;color:#8b929d;letter-spacing:.025em}.pill{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--blue);color:#fff;border-radius:99px;padding:12px 20px;white-space:nowrap;font-size:14px}.pill:hover{background:var(--blue-hover)}.case-dialog[open]{animation:dialog-in .35s ease}@keyframes dialog-in{from{opacity:0;transform:scale(.97) translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1650px){.hero{padding-top:62px}.hero-composition{height:435px;max-width:1390px}.window-main{height:400px;max-width:790px}.window-left,.window-right{height:330px}.hero-signature{margin-top:20px}.feature{margin-left:28px;margin-right:28px}.feature h3{font-size:70px}.product-screen{max-width:1100px}.screen-image{height:470px}.incident-screen .screen-image{height:515px}.mini-feature h3{font-size:43px}.mini-screen{max-width:730px;height:365px}.project-pair{margin-left:28px;margin-right:28px;gap:20px}}
@media(max-width:1100px){.nav-inner{gap:35px}.hero-composition{max-width:1050px;height:335px;margin-top:45px}.window-main{width:62%;height:315px}.window-left,.window-right{height:270px;top:34px}.window-left{left:3%}.window-right{right:2%}.section-intro{padding:60px 42px 40px;gap:30px}.section-intro h2{font-size:43px}.section-intro p{font-size:16px}.feature{padding-top:55px}.screen-image{height:365px}.incident-screen .screen-image{height:390px}.feature-summary{font-size:19px}.mini-feature h3{font-size:29px}.mini-heading>p:not(.product-name){font-size:15px}.mini-heading>p br{display:none}.mini-screen{height:260px}.proof-feature{padding:25px 42px;gap:45px}.proof-copy h3{font-size:47px}.proof-copy>p:not(.product-name){font-size:17px}.evidence-flow{padding:24px}.evidence-step{padding:15px;gap:12px}.evidence-step h4{font-size:17px}.evidence-step p{font-size:12px}.step-number{display:none}.about h2{font-size:40px}.about-details{gap:20px}.education-panel,.focus-panel{padding:32px}.experience-row{grid-template-columns:50px 1fr 1fr;gap:22px}.employer-mark{height:50px;width:50px}.role-heading h3{font-size:18px}.role-summary{font-size:16px}.contact h2{font-size:70px}}
@media(max-width:760px){:root{--nav-height:52px}html{scroll-padding-top:70px}.nav-inner{padding:0 24px;gap:22px}.brand{font-size:25px;margin-right:auto}.desktop-nav{display:none}.nav-contact{font-size:12px}.menu-toggle{height:40px;width:30px;display:flex;flex-direction:column;gap:6px;justify-content:center;align-items:flex-end;background:transparent;padding:0}.menu-toggle span{width:20px;height:1px;background:#48484d;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-nav{display:flex;position:absolute;top:var(--nav-height);left:0;right:0;flex-direction:column;padding:22px 30px 35px;gap:3px;background:#fafafcf5;backdrop-filter:blur(25px);box-shadow:0 10px 20px #0000000d;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}.mobile-nav.open{visibility:visible;opacity:1;transform:none}.mobile-nav a{font-size:24px;font-weight:550;letter-spacing:-.04em;padding:12px 0}.availability{padding:12px 23px;line-height:1.6;font-size:12px;flex-wrap:wrap;gap:2px 7px}.availability a{font-size:12px}.hero{padding-top:40px;padding-bottom:26px}.hero-eyebrow{font-size:14px;margin-bottom:12px}.hero h1{font-size:clamp(46px,8.8vw,64px);letter-spacing:-.06em}.hero-subtitle{font-size:21px;margin-top:17px;line-height:1.4}.hero .cta-row{margin-top:24px;gap:10px}.button{font-size:13px;padding:11px 19px}.hero-composition{height:300px;width:100%;max-width:680px;margin-top:38px}.window-main{width:78%;height:255px;top:0;border-radius:12px}.window-left{width:64%;height:230px;left:-6%;top:25px;border-radius:12px}.window-right{width:59%;height:230px;right:-5%;top:30px;border-radius:12px}.window-bar{font-size:12px;height:25px;gap:10px;padding:0 9px}.window-dots{gap:3px}.window-dots i{width:5px;height:5px}.window-tail{font-size:12px}.window-content{height:calc(100% - 25px)}.hero-signature{font-size:12px;margin-top:0}.hero-signature span+span{margin-left:4px}.project-lineup{padding:20px 0 26px;overflow:auto;scrollbar-width:none}.lineup-inner{width:max-content;gap:22px;padding:0 25px;justify-content:flex-start}.lineup-inner a{min-width:85px;font-size:12px;gap:10px}.app-mark{width:44px;height:44px;border-radius:13px;font-size:16px}.section-intro{display:block;padding:45px 26px 35px}.section-intro h2{font-size:36px;line-height:1.13}.section-intro p{font-size:16px;line-height:1.7;margin:20px 0 0}.section-intro p br{display:none}.feature{margin:0 10px 12px;border-radius:23px;padding:43px 16px 24px}.product-name{font-size:17px;margin-bottom:12px}.feature h3{font-size:clamp(33px,7vw,48px);line-height:1.09;letter-spacing:-.045em}.feature-summary{font-size:17px;line-height:1.6;margin:18px auto 0;max-width:390px}.feature-summary br{display:none}.feature .cta-row{margin-top:23px;gap:12px}.product-screen{width:100%;border-radius:11px;margin-top:35px}.screen-top{height:25px;padding:0 8px;font-size:12px;gap:6px}.screen-top .window-dots{gap:3px}.screen-top .window-dots i{width:5px;height:5px}.screen-image{height:265px}.incident-screen .screen-image{height:270px}.incident-screen .screen-image img{transform:translateY(-13%)}.feature-caption{gap:10px;flex-wrap:wrap;font-size:12px;margin:20px 0 0}.feature-caption i{height:2px;width:2px}.project-pair{grid-template-columns:1fr;gap:12px;margin:0 10px 12px}.mini-feature{padding-top:40px;border-radius:23px}.mini-feature h3{font-size:32px;line-height:1.12}.mini-heading{padding:0 24px}.mini-heading .product-name{font-size:17px}.mini-heading>p:not(.product-name){font-size:16px;max-width:380px;margin:18px auto 0}.mini-screen{height:290px;max-width:510px;width:88%;margin-top:30px;border-width:3px;border-radius:14px 14px 0 0}.mini-feature .cta-row{margin-top:23px}.proof-feature{grid-template-columns:1fr;padding:35px 28px;margin:30px auto 15px;gap:35px;max-width:600px}.proof-copy{text-align:center}.proof-copy h3{font-size:42px}.proof-copy>p:not(.product-name){font-size:17px;margin:18px auto 0}.proof-copy .cta-row{justify-content:center;margin-top:24px}.evidence-flow{border-radius:26px;padding:24px}.evidence-step{padding:18px;border-radius:17px;gap:16px}.evidence-step p{font-size:12px}.evidence-step h4{font-size:18px}.evidence-icon{width:39px;height:39px}.flow-line{height:18px}.flow-caption{font-size:12px;margin-top:20px}.all-work-link{font-size:16px;margin:25px auto 32px}.selected-work{padding-bottom:10px}.about{padding:60px 25px}.about .section-eyebrow{font-size:15px}.about h2{font-size:33px;line-height:1.15;letter-spacing:-.04em}.about h2 br{display:none}.about-intro>p:not(.section-eyebrow){font-size:17px;line-height:1.8}.about-intro .inline-link{font-size:16px}.about-details{grid-template-columns:1fr;gap:18px;margin-top:38px;max-width:520px}.education-panel,.focus-panel{padding:32px;border-radius:25px}.about-details h3{font-size:28px}.degree{gap:7px}.skill-groups>div{gap:15px}.skill-groups p{font-size:13px}.experience{padding:60px 26px}.experience-heading{margin-bottom:30px}.experience .section-eyebrow{font-size:15px}.experience h2{font-size:34px;line-height:1.14}.experience-list{padding:0}.experience-row{grid-template-columns:44px 1fr;gap:16px;padding:28px 0}.employer-mark{width:44px;height:44px;font-size:12px;border-radius:13px}.role-heading h3{font-size:18px;margin-top:0}.role-heading p{font-size:13px}.role-heading span{font-size:12px}.role-summary{grid-column:2;font-size:16px;line-height:1.8;margin-top:1px}.contact{padding:65px 25px 70px}.contact .section-eyebrow{font-size:14px;max-width:250px;margin:auto}.contact h2{font-size:clamp(39px,8.5vw,64px);margin-top:24px;line-height:1.06;letter-spacing:-.05em}.contact p:not(.section-eyebrow){font-size:17px;line-height:1.7;margin-top:22px}.contact p br{display:none}.contact .cta-row{gap:10px;margin-top:25px}.contact-email{font-size:13px;margin-top:25px}.site-footer{padding:30px 25px 22px}.footer-top{align-items:flex-start;gap:25px;flex-direction:column;padding-bottom:22px}.footer-brand{font-size:17px}.footer-social{font-size:12px;gap:27px}.footer-bottom{font-size:12px;gap:15px;align-items:center}.footer-bottom a{white-space:nowrap;gap:8px}.case-dialog{width:calc(100% - 22px);max-height:94svh;border-radius:24px}.case-shell{padding:22px 26px 30px}.case-close{font-size:12px;padding:8px 13px;margin-bottom:28px}.case-kicker{font-size:12px}.case-dialog h2{font-size:36px;letter-spacing:-.045em}.case-lead{font-size:18px}.case-sections{grid-template-columns:1fr;gap:28px;margin:35px 0}.case-footer{align-items:flex-start;flex-direction:column;gap:22px}.case-footer .mono{font-size:12px}}
@media(max-width:400px){.hero-composition{height:253px}.window-main{height:220px;width:82%}.window-left{height:198px;width:67%;left:-7%}.window-right{height:198px;width:63%;right:-8%}.hero-signature{font-size:12px}.hero-subtitle{font-size:20px}.hero-eyebrow{font-size:13px}.hero-copy{padding:0 20px}.feature h3{font-size:33px}.feature-summary{font-size:16px}.screen-image{height:230px}.incident-screen .screen-image{height:235px}.feature-caption{font-size:12px;gap:7px}.mini-feature h3{font-size:29px}.mini-screen{height:230px}.proof-feature{padding-left:24px;padding-right:24px}.evidence-flow{padding:20px}.evidence-step{padding:14px;gap:12px}.evidence-step h4{font-size:17px}.evidence-step p{font-size:12px}.contact h2{font-size:39px}.contact .button{font-size:12px;padding:11px 16px}.about h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero{--hero-progress:0!important}.app-window{will-change:auto}.js .reveal,.js .product-screen.reveal{opacity:1;transform:none!important}.lineup-inner a:hover .app-mark{transform:none}}

/* Quiet, one-time entrances; independent translate preserves the hero's scroll transforms. */
@media (prefers-reduced-motion: no-preference) {
  :root {
    --motion-ease: cubic-bezier(.22, 1, .36, 1);
    --entrance-distance: 16px;
    --motion-step: 70ms;
  }

  @keyframes quiet-entrance {
    from { opacity: 0; translate: 0 var(--entrance-distance); }
    to { opacity: 1; translate: 0 0; }
  }
  @keyframes connection-entrance {
    from { opacity: 0; scale: 1 0; }
    to { opacity: 1; scale: 1 1; }
  }
  @keyframes backdrop-entrance {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  .js .hero-copy > *,
  .js .hero-composition .app-window,
  .js .hero-signature {
    animation: quiet-entrance 750ms var(--motion-ease) backwards;
  }
  .js .hero-copy > :nth-child(2) { animation-delay: var(--motion-step); }
  .js .hero-copy > :nth-child(3) { animation-delay: calc(var(--motion-step) * 2); }
  .js .hero-copy > :nth-child(4) { animation-delay: calc(var(--motion-step) * 3); }
  .js .hero-composition .window-main { animation-delay: calc(var(--motion-step) * 3); }
  .js .hero-composition .window-left { animation-delay: calc(var(--motion-step) * 4); }
  .js .hero-composition .window-right { animation-delay: calc(var(--motion-step) * 5); }
  .js .hero-signature { animation-delay: calc(var(--motion-step) * 6); }

  .js .reveal {
    transform: translate3d(0, 22px, 0);
    transition: opacity 700ms ease, transform 800ms var(--motion-ease);
  }
  .js .product-screen.reveal {
    transform: translate3d(0, 32px, 0) scale(.985);
    transition: opacity 800ms ease, transform 950ms var(--motion-ease);
  }
  .js .reveal.visible,
  .js .product-screen.reveal.visible { transform: none; }

  .js .evidence-flow.reveal { transform: none; }
  .js .evidence-flow.visible .evidence-step {
    animation: quiet-entrance 650ms var(--motion-ease) backwards;
  }
  .js .evidence-flow.visible .evidence-step:nth-child(3) { animation-delay: calc(var(--motion-step) * 2); }
  .js .evidence-flow.visible .evidence-step:nth-child(5) { animation-delay: calc(var(--motion-step) * 4); }
  .js .evidence-flow.visible .flow-line {
    transform-origin: top;
    animation: connection-entrance 450ms var(--motion-ease) var(--motion-step) backwards;
  }
  .js .evidence-flow.visible .flow-line:nth-child(4) { animation-delay: calc(var(--motion-step) * 3); }

  .button, .pill { transition: background 220ms, color 220ms, box-shadow 220ms, transform 220ms var(--motion-ease); }
  .inline-link > span, .button > span, .pill > span, .nav-contact > span {
    display: inline-block;
    transition: translate 220ms var(--motion-ease);
  }
  .case-dialog[open] { --entrance-distance: 10px; animation: quiet-entrance 320ms var(--motion-ease); }
  .case-dialog[open]::backdrop { animation: backdrop-entrance 200ms ease; }
  .case-dialog[open] .case-sections > section {
    --entrance-distance: 8px;
    animation: quiet-entrance 400ms var(--motion-ease) 80ms backwards;
  }
  .case-dialog[open] .case-sections > section:nth-child(2) { animation-delay: 120ms; }
  .case-dialog[open] .case-sections > section:nth-child(3) { animation-delay: 160ms; }
  .case-dialog[open] .case-sections > section:nth-child(4) { animation-delay: 200ms; }
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  .button:hover, .pill:hover { transform: translateY(-2px); }
  .button:active, .pill:active { transform: translateY(0) scale(.98); }
  .inline-link:hover > span, .button:hover > span, .pill:hover > span, .nav-contact:hover > span { translate: 3px 0; }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 760px) {
  :root { --entrance-distance: 9px; --motion-step: 40ms; }
  .js .reveal { transform: translate3d(0, 14px, 0); }
  .js .product-screen.reveal { transform: translate3d(0, 20px, 0) scale(.99); }
  .js .reveal.visible, .js .product-screen.reveal.visible, .js .evidence-flow.reveal { transform: none; }
}

/* Readable project context without adding another card layer. */
.feature-summary { max-width: 660px; margin-left: auto; margin-right: auto; }
.mini-heading > p:not(.product-name):not(.project-stack) { max-width: 440px; margin-left: auto; margin-right: auto; }
.feature-heading > p.project-stack,
.mini-heading > p.project-stack,
.proof-copy > p.project-stack {
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0;
  color: #626772;
  margin: 16px auto 0;
  max-width: 440px;
}
.project-stack > span { font-weight: 550; margin-right: 5px; }
.feature-incident .project-stack { color: #a3b0bc; }
.proof-copy > p.project-stack { margin-left: 0; }
@media (max-width: 760px) {
  .feature-summary { max-width: 430px; }
  .proof-copy > p.project-stack { margin-left: auto; }
}

.window-bar>span:nth-child(2),.screen-top>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-subtitle{color:#666670}.feature-summary{color:#70707a}.role-summary{color:#71717a}

/* Layered project previews with stable hover targets. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.project-showcase{max-width:1320px;margin:0 auto;position:relative}
.showcase-stage{height:410px;max-width:1200px;margin:44px auto 0;position:relative;isolation:isolate;touch-action:pan-y pinch-zoom}
.showcase-slide{position:absolute;left:50%;top:20px;width:62%;height:360px;padding:0;display:flex;flex-direction:column;overflow:hidden;text-align:left;border:1px solid #c7cdd74d;border-radius:21px;background:#fff;box-shadow:0 24px 55px -22px #202a4940;transform:translate3d(-50%,0,0);translate:0 0;transform-origin:center;opacity:1;z-index:3;cursor:pointer;will-change:transform,opacity;backface-visibility:hidden;transition:transform 400ms cubic-bezier(.22,.61,.36,1),opacity 220ms ease,translate 180ms ease-out}
.showcase-slide[data-slot="-1"]{transform:translate3d(-94%,30px,0) scale(.84) rotate(-3deg);opacity:.7;z-index:2;cursor:pointer}
.showcase-slide[data-slot="1"]{transform:translate3d(-6%,30px,0) scale(.84) rotate(3deg);opacity:.7;z-index:2;cursor:pointer}
.showcase-slide[data-slot="-2"]{transform:translate3d(-135%,50px,0) scale(.7) rotate(-5deg);opacity:0;z-index:1;pointer-events:none}
.showcase-slide[data-slot="2"]{transform:translate3d(35%,50px,0) scale(.7) rotate(5deg);opacity:0;z-index:1;pointer-events:none}
.showcase-slide .window-bar{width:100%;height:32px;flex:none;font-size:12px}
.slide-art{display:block;width:100%;flex:1;min-height:0;overflow:hidden;pointer-events:none}
.slide-art img{width:100%;height:auto;user-select:none}
.showcase-slide[data-slide="incidentatlas"] .slide-art img{margin-top:-10%}
.showcase-footer{max-width:760px;margin:0 auto;padding:0 12px;text-align:center}
.showcase-caption{max-width:560px;margin:0 auto;min-width:0}
.showcase-eyebrow{font-size:13px;color:#637084;margin-bottom:6px}
.showcase-title{font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.04em}
.showcase-description{font-size:15px;line-height:1.6;color:#626672;margin-top:7px;min-height:48px}
.showcase-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;margin-top:12px}
.showcase-open{min-height:44px}
.showcase-source{min-height:44px;display:inline-flex;align-items:center;font-size:14px;padding:8px 3px}





.showcase-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:900px;margin:25px auto 0;padding:0 20px}
.showcase-pick{min-height:44px;padding:10px 17px;border:1px solid #d9dce3;border-radius:99px;background:#ffffff80;color:#555861;font-size:14px;font-weight:450;line-height:1.35;transition:background 160ms,color 160ms,border-color 160ms}
.showcase-pick:hover{background:#fff;border-color:#aeb5c2}
.showcase-pick[aria-pressed="true"]{background:#25272d;border-color:#25272d;color:#fff}
.project-showcase+.hero-signature{margin-top:24px}
.proof-slide-art{background:linear-gradient(135deg,#edf3fc,#f8faff);padding:18px 7%;display:flex;flex-direction:column;justify-content:center;gap:10px}
.proof-slide-title{font-size:25px;font-weight:600;letter-spacing:-.035em;color:#223149}
.proof-slide-flow{display:grid;gap:7px}
.proof-slide-flow>span{display:grid;grid-template-columns:26px 1fr;column-gap:10px;background:#ffffffd9;border:1px solid #d9e3f2;border-radius:12px;padding:10px 12px}
.proof-slide-flow b{grid-row:span 2;align-self:center;color:#7390bb;font-size:13px;font-weight:500}
.proof-slide-flow strong{font-size:14px;font-weight:550;color:#334663}
.proof-slide-flow small{font-size:12px;color:#697a92}
.proof-slide-note{font-size:12px;color:#6e7e94}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.showcase-stage:hover .showcase-slide[data-slot="0"]{translate:0 -6px}}
@media(max-width:1000px){.showcase-stage{height:340px}.showcase-slide{width:67%;height:300px}.showcase-footer{max-width:690px;gap:20px}.showcase-title{font-size:23px}.proof-slide-title{font-size:22px}.proof-slide-art{padding:16px 7%;gap:8px}.proof-slide-flow>span{padding:7px 12px}}
@media(max-width:760px){
 .showcase-stage{height:275px;margin-top:32px}.showcase-slide{width:82%;height:245px;top:10px;border-radius:15px}.showcase-slide .window-bar{height:27px;font-size:12px;padding:0 9px}.showcase-slide .window-dots i{width:5px;height:5px}
 .showcase-slide[data-slot="-1"]{transform:translate3d(-80%,15px,0) scale(.88) rotate(-3deg)}.showcase-slide[data-slot="1"]{transform:translate3d(-20%,15px,0) scale(.88) rotate(3deg)}
 .showcase-footer{padding:0 24px;flex-direction:column;align-items:stretch;gap:20px}.showcase-caption{max-width:none}.showcase-title{font-size:23px}.showcase-description{font-size:15px;min-height:48px}.showcase-open{font-size:14px;padding:12px 21px}
 .showcase-picker{margin-top:20px;gap:8px;padding:0 20px}.showcase-pick{font-size:13px;padding:10px 13px}
 .proof-slide-art{padding:12px 6%;gap:8px}.proof-slide-title{font-size:20px}.proof-slide-flow>span{padding:7px 10px;grid-template-columns:22px 1fr;column-gap:6px}.proof-slide-flow strong{font-size:13px}.proof-slide-flow small{display:none}.proof-slide-flow b{grid-row:auto;font-size:12px}.proof-slide-note{font-size:12px}
}
@media(max-width:400px){.showcase-stage{height:240px}.showcase-slide{height:215px}.showcase-footer{padding:0 20px}.showcase-pick{padding:10px 12px}.proof-slide-title{font-size:17px}.proof-slide-art{gap:6px}.proof-slide-flow>span{padding:5px 8px}}
@media(prefers-reduced-motion:reduce){.showcase-slide{transition:none!important;will-change:auto}}

.showcase-hover-zones{display:none}
@media(hover:hover) and (pointer:fine){.js .showcase-hover-zones{display:grid;grid-template-columns:19% 62% 19%;position:absolute;inset:20px 0 30px;z-index:5}.showcase-hover-zones a{display:block;cursor:pointer}}
@media(hover:hover) and (pointer:fine) and (max-width:1000px){.js .showcase-hover-zones{grid-template-columns:16.5% 67% 16.5%}}
@media(hover:hover) and (pointer:fine) and (max-width:760px){.js .showcase-hover-zones{grid-template-columns:9% 82% 9%;top:10px;bottom:20px}}

/* Experience follows a single scroll-linked rail. */
.experience{max-width:1200px;padding:104px 40px 110px}
.experience-heading{margin-bottom:74px}
.experience-timeline{position:relative;isolation:isolate}
.timeline-list{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:64px}
.timeline-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);align-items:start}
.timeline-entry{grid-column:1;padding:0 10px 0 0;min-width:0}
.timeline-item:nth-child(even) .timeline-entry{grid-column:3;padding:0 0 0 10px}
.timeline-date{font-size:14px;line-height:1.5;font-weight:500;color:#2764e7;margin:0 0 11px}
.timeline-entry h3{font-size:24px;font-weight:600;line-height:1.25;letter-spacing:-.035em;margin:0 0 7px}
.timeline-company{font-size:16px;line-height:1.5;font-weight:500;color:#4e5c70}
.timeline-location{font-size:14px;line-height:1.6;color:#727a88;margin-top:4px}
.degree-research{font-size:14px;line-height:1.7;color:#626771;margin-top:8px}
.focus-panel .skill-groups p{font-size:14px;overflow-wrap:anywhere}
.timeline-entry .role-summary{font-size:16px;line-height:1.8;color:#626771;margin-top:17px}
.timeline-skills{font-size:14px;line-height:1.7;color:#727a88;margin-top:18px}
.timeline-node{position:absolute;z-index:2;left:50%;top:0;transform:translateX(-50%);width:44px;height:44px;border:1px solid #dce3ed;border-radius:50%;display:grid;place-items:center;background:#fff;color:#68758a;font-size:12px;font-weight:600;letter-spacing:-.02em;box-shadow:0 0 0 7px #fff;transition:background 220ms,color 220ms,border-color 220ms,box-shadow 220ms}
.timeline-rail{position:absolute;z-index:0;left:50%;top:22px;bottom:22px;width:2px;background:#e7ebf1;transform:translateX(-50%);pointer-events:none}
.timeline-fill{position:absolute;inset:0;background:linear-gradient(#6698f7,#2764e7);transform:scaleY(1);transform-origin:top}
.js .timeline-fill{transform:scaleY(0)}
.timeline-traveler{display:none;position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:#2764e7;box-shadow:0 0 0 5px #2764e711,0 0 20px #2764e740;will-change:transform}
.js .timeline-traveler{display:block}
.timeline-item.is-reached .timeline-node{background:#2764e7;border-color:#2764e7;color:white;box-shadow:0 0 0 7px #fff,0 0 0 8px #2764e719}
@media(max-width:900px){.experience{padding-left:30px;padding-right:30px}.timeline-item{grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr)}.timeline-entry h3{font-size:22px}}
@media(max-width:700px){.experience{padding:76px 24px 84px}.experience-heading{margin-bottom:52px}.timeline-list{gap:46px}.timeline-item{display:block;padding-left:64px}.timeline-entry,.timeline-item:nth-child(even) .timeline-entry{padding:0}.timeline-node{left:20px;width:40px;height:40px}.timeline-rail{left:20px}.timeline-entry h3{font-size:22px}.timeline-date{font-size:14px}.timeline-entry .role-summary{font-size:16px;line-height:1.75}.timeline-skills{margin-top:15px}}
@media(max-width:380px){.experience{padding-left:18px;padding-right:18px}.timeline-item{padding-left:57px}.timeline-entry h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.timeline-fill,.js .timeline-fill{transform:scaleY(1)!important}.timeline-traveler,.js .timeline-traveler{display:none}.timeline-node{transition:none}}
