@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_8daba33-module__4Hgw1q__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_8daba33-module__4Hgw1q__variable{--font-geist:"Geist", "Geist Fallback"}
:root{--font-sans:var(--font-geist), "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--bg:#292b2f;--bg-device:#25272b;--surface:#303236;--surface-2:#3b3d42;--well:#232528;--ink:#efeee9;--ink-2:#cfd0cd;--muted:#aeb0b0;--line:#ffffff1a;--line-strong:#fff3;--accent:#d7ff5f;--accent-hover:#c5f03f;--accent-ink:#0c0d0f;--accent-soft:#d7ff5f1f;--plate:linear-gradient(118deg, #ffffff0d, #fff0 44%, #00000014);--edge:inset 0 1px 0 #ffffff16, inset 0 -1px 0 #0000004d;--raised:linear-gradient(180deg, #3f4146, #383a3f);--raised-edge:inset 0 1px 0 #ffffff14, 0 1px 2px #00000040;--radius:14px;--radius-sm:8px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1);--ease-exit:cubic-bezier(.55, .055, .675, .19);--t-press:.14s;--t-hover:.18s;--t-ui:.24s;--t-reveal:.8s;--t-open:1.2s;--type-h1:clamp(46px, min(6.4vw, 11.6svh), 96px);--type-h2:clamp(52px, min(7.2vw, 13.5svh), 108px);--type-scene:clamp(44px, min(5vw, 9.5svh), 76px);--gutter:clamp(24px, 3.75vw, 80px);--shell:min(1240px, 100% - var(--gutter) * 2);--section-gap:120px;--hero-end:32px;--hero-gap:clamp(28px, calc(100svh - 620px), var(--section-gap));--scroll-pad:92px}@supports (width:round(1px, 1px)){:root{--gutter:round(clamp(24px, 3.75vw, 80px), 1px)}}@media (max-width:640px){:root{--type-h1:clamp(40px, 12.4vw, 60px);--type-h2:clamp(44px, 13vw, 56px);--type-scene:clamp(34px, 9.6vw, 44px)}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:var(--scroll-pad);-webkit-text-size-adjust:100%}body{min-height:100svh;color:var(--ink);background:var(--bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.5}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}h1,h2,h3{text-wrap:balance}h1,h2,h3,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1[tabindex="-1"]:focus-visible,h2[tabindex="-1"]:focus-visible{outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1100;color:var(--bg);background:var(--ink);padding:10px 16px;font-size:14px;font-weight:600;transition:transform .18s;position:fixed;top:14px;left:14px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.circuit-field{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.card,.contact-links a{border-radius:var(--radius)}.btn,.menu-button,.chip,.chips-more summary,.work-filters button,.work-controls button,.mini-arrow,.mini-tools li,.edu-badges li,.xp-current,.logo-tile,.edu-cert-paper img{border-radius:var(--radius-sm)}.card:before,.contact-links a:before{content:"";background:radial-gradient(320px circle at var(--x,50%) var(--y,50%), #d7ff5f1a, transparent 70%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.card:hover:before,.contact-links a:hover:before{opacity:1}.shell{width:var(--shell);margin-inline:auto}.curtain{z-index:1000;background:var(--bg);color:#fff;pointer-events:none;place-items:center;animation:.6s cubic-bezier(.83,0,.17,1) .9s both curtain-up;display:grid;position:fixed;inset:0}.curtain-logo{align-items:center;gap:20px;display:flex}.curtain-mark{width:66px;height:50px;animation:mark-in .7s var(--ease-expo) 50ms both}.curtain-divider{background:#ffffff59;width:1px;height:34px;animation:.4s .3s both fade-in}.curtain-name{letter-spacing:-.01em;animation:name-in .5s var(--ease-expo) .3s both;font-size:20px;font-weight:600}@keyframes curtain-up{to{transform:translateY(-101%)}}@keyframes mark-in{0%{opacity:0;transform:scale(.82)rotate(-8deg)}to{opacity:1;transform:none}}@keyframes name-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.logo{color:var(--ink);align-items:center;gap:14px;display:inline-flex}.logo-mark{width:33px;height:25px}.logo-divider{background:var(--line-strong);width:1px;height:22px}.logo-name{letter-spacing:-.01em;font-size:16px;font-weight:600}.site-header{z-index:50;transition:background .3s,box-shadow .3s;position:fixed;inset:0 0 auto}.site-header.is-scrolled,.site-header.is-open{background:var(--bg);box-shadow:0 1px 0 var(--line)}.header-inner{justify-content:space-between;align-items:center;height:76px;display:flex;position:relative}.site-nav{gap:34px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.site-nav a{color:var(--ink-2);font-size:14px;font-weight:500;transition:color .2s}.site-nav a:hover{color:var(--ink)}.header-side{align-items:center;gap:12px;display:flex}.menu-button{background:var(--surface-2);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;padding:0;display:none}.section-head h2,.intro h2{font-size:var(--type-h2);line-height:1}h2{letter-spacing:-.04em;font-size:clamp(36px,4vw,56px);font-weight:600;line-height:1.04}.section{padding-top:var(--section-gap)}.work-section{padding-top:calc(var(--section-gap) - var(--hero-end))}.section-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px;display:flex}.link-arrow{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 0 4px;font-size:14px;font-weight:600;display:inline-flex}.link-arrow svg{transition:translate .2s var(--ease-out)}.link-arrow:hover svg{translate:3px}.btn{letter-spacing:-.01em;cursor:pointer;height:48px;transition:transform .2s var(--ease-out), background .2s, border-color .2s, color .2s, box-shadow .2s;border:0;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:16px;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn svg{transition:translate .2s var(--ease-out)}.btn:hover svg{translate:3px}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{background:var(--surface-2);color:var(--ink)}.btn-outline:hover{background:var(--line-strong)}.btn-sm{height:40px;padding:0 18px;font-size:14px}.hero{align-content:end;row-gap:var(--hero-gap);min-height:100svh;padding:88px 0 var(--hero-end);display:grid;position:relative}.hero:before{content:"";opacity:var(--key,1);pointer-events:none;background:radial-gradient(44% 56% at 72% 42%,#ffffff12,#0000 72%);position:absolute;inset:0}.hero-grid{z-index:1;grid-template-columns:clamp(440px,38vw,540px) minmax(0,1fr);align-items:center;gap:32px;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero-copy>*{animation:rise .8s var(--ease-expo) both;animation-delay:calc(.85s + var(--i,0) * 80ms)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero h1{width:7.2em;font-size:var(--type-h1);letter-spacing:-.05em;font-weight:600;line-height:1}.hero-lede{max-width:520px;color:var(--ink-2);margin-top:26px;font-size:18px;line-height:1.5}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:34px;display:flex}.stage{--mx:0;--my:0;z-index:1;width:min((100% + max(var(--gutter), (100vw - 1240px) / 2)) * .94, max((100svh - 215px - var(--hero-gap)) * 1.5625, 560px), 1050px);aspect-ratio:100/64;position:relative;container-type:inline-size}.stage[data-paused] .el-float,.stage[data-paused] .ribbon-sheen:before{animation-play-state:paused}.el{translate:calc(var(--mx) * var(--d,1) * 1cqw) calc(var(--my) * var(--d,1) * 1cqw);animation:var(--enter) 1.25s var(--ease-expo) var(--delay,1.05s) both;position:absolute}.el-fly{transform-origin:0 0;position:relative}.el-float{will-change:transform;animation:var(--path) var(--t,8s) ease-in-out var(--offset,0s) infinite;position:relative}.el img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:auto}.el-ribbon{--d:.55;--enter:enter-unfurl;--delay:1.15s;--path:path-ribbon;--t:15s;z-index:2;width:96%;top:4.7%;left:2%}.el-laptop{--d:.95;--enter:enter-laptop;--delay:1.3s;--path:path-laptop;--t:8.6s;z-index:3;width:59.69%;top:6.84%;left:23.52%}.el-phone{--d:1.7;--enter:enter-phone;--delay:1.5s;--path:path-phone;--t:6.7s;--offset:-2.1s;z-index:4;width:19.3%;top:28.6%;left:13.5%}.el-chip-code{--d:2.3;--enter:enter-pop;--delay:1.75s;--path:path-code;--t:7.3s;--offset:-1.2s;z-index:5;width:13.5%;top:.8%;left:33%}.el-chip-cloud{--d:2;--enter:enter-pop;--delay:1.89s;--path:path-cloud;--t:9.1s;--offset:-4.4s;z-index:5;width:12.5%;top:36%;left:85%}.el-chip-spark{--d:2.6;--enter:enter-pop;--delay:2.03s;--path:path-spark;--t:5.9s;--offset:-3s;z-index:5;width:10.5%;top:68.5%;left:6%}.ribbon-sheen{-webkit-mask:var(--sheen-mask) center / 100% 100% no-repeat;-webkit-mask:var(--sheen-mask) center / 100% 100% no-repeat;mask:var(--sheen-mask) center / 100% 100% no-repeat;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ribbon-sheen:before{content:"";background:linear-gradient(90deg,#fff0,#fffcf0d9,#fff0);width:26%;animation:9s cubic-bezier(.45,0,.3,1) 3s infinite ribbon-glint;position:absolute;top:-20%;bottom:-20%;left:0;transform:translate(-120%)skew(-22deg)}@keyframes ribbon-glint{to{transform:translate(420%)skew(-22deg)}}@keyframes enter-unfurl{0%{opacity:0;clip-path:inset(-20% 100% -20% -20%);transform:rotate(-5deg)scale(.96)}35%{opacity:1}to{opacity:1;clip-path:inset(-20%);transform:none}}@keyframes enter-laptop{0%{opacity:0;transform:translate(7cqw,7cqw)rotate(3deg)scale(.93)}to{opacity:1;transform:none}}@keyframes enter-phone{0%{opacity:0;transform:translate(-9cqw,6cqw)rotate(-7deg)}to{opacity:1;transform:none}}@keyframes enter-pop{0%{opacity:0;transform:translateY(3cqw)scale(.55)rotate(-10deg)}65%{opacity:1;transform:translateY(-.5cqw)scale(1.07)rotate(2deg)}to{opacity:1;transform:none}}@property --amp{syntax:"<number>";inherits:true;initial-value:1}@keyframes path-ribbon{0%,to{transform:translate(0,0)rotate(0)}30%{transform:translate3d(calc(.5cqw * var(--amp)), calc(-.8cqw * var(--amp)), 0) rotate(calc(-.9deg * var(--amp)))}68%{transform:translate3d(calc(-.5cqw * var(--amp)), calc(.5cqw * var(--amp)), 0) rotate(calc(.8deg * var(--amp)))}}@keyframes path-laptop{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate3d(calc(.15cqw * var(--amp)), calc(-1.5cqw * var(--amp)), 0) rotate(calc(-.7deg * var(--amp)))}}@keyframes path-phone{0%,to{transform:translate(0,0)rotate(0)}35%{transform:translate3d(calc(-.3cqw * var(--amp)), calc(-1.5cqw * var(--amp)), 0) rotate(calc(1.7deg * var(--amp)))}70%{transform:translate3d(calc(.25cqw * var(--amp)), calc(-2.2cqw * var(--amp)), 0) rotate(calc(-.9deg * var(--amp)))}}@keyframes path-code{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate3d(calc(.7cqw * var(--amp)), calc(-1.9cqw * var(--amp)), 0) rotate(calc(-5deg * var(--amp)))}}@keyframes path-cloud{0%,to{transform:translate(0,0)rotate(0)}33%{transform:translate3d(calc(-.9cqw * var(--amp)), calc(-1.1cqw * var(--amp)), 0) rotate(calc(3.5deg * var(--amp)))}66%{transform:translate3d(calc(.4cqw * var(--amp)), calc(-2cqw * var(--amp)), 0) rotate(calc(-2.5deg * var(--amp)))}}@keyframes path-spark{0%,to{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate3d(calc(.8cqw * var(--amp)), calc(-1.6cqw * var(--amp)), 0) rotate(calc(7deg * var(--amp))) scale(calc(1 + .05 * var(--amp)))}}.stats-section{z-index:1;position:relative}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.stats li{flex-direction:column;gap:6px;display:flex}.stats strong{color:var(--ink);letter-spacing:-.03em;font-size:40px;font-weight:600;line-height:1.1}.stats span{color:var(--muted);font-size:16px}.work-controls{gap:10px;display:flex}.work-controls button{background:var(--surface-2);width:46px;height:46px;color:var(--ink);cursor:pointer;transition:background .2s, border-color .2s, color .2s, transform .2s var(--ease-out);border:0;place-items:center;padding:0;display:grid}.work-controls button:hover:not(:disabled){background:var(--accent);color:var(--accent-ink);transform:translateY(-1px)}.work-controls button:disabled{color:var(--muted);cursor:default;background:0 0}.slides{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:flex-start;display:flex;overflow-x:auto}.slides::-webkit-scrollbar{display:none}.slide{scroll-snap-align:start;flex:0 0 100%;min-width:0}.slide-main{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(40px,6vw,88px);min-height:520px;display:grid}.slide-media{place-items:center;padding:16px 0;display:grid;position:relative;container-type:inline-size}.slide-copy{flex-direction:column;align-items:flex-start;max-width:440px;display:flex}.slide h3{letter-spacing:-.04em;margin-top:16px;font-size:clamp(30px,3vw,40px);font-weight:600;line-height:1.06}.slide-desc{color:var(--ink-2);margin-top:16px;font-size:16px;line-height:1.6}.slide-actions{flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:30px;display:flex}.slide-toggle{height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 6px;font-size:14px;font-weight:600;display:inline-flex}.slide-details{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;margin-top:24px;display:grid}.slide-details[hidden]{display:none}.slide-details ul{color:var(--ink-2);gap:12px;font-size:16px;line-height:1.55;display:grid}.stack-icons{flex-wrap:wrap;align-items:center;gap:20px;margin-top:24px;display:flex}.stack-icons li{place-items:center;display:grid}.stack-icons svg,.stack-icons .chip-file{width:auto;height:24px;color:var(--ink)}.slide-details .chips ul,.slide-details .chips{align-content:flex-start}.dv-set{width:100%;max-width:620px;position:relative}.dv-set.has-phone{padding-left:9%}.dv-laptop{transition:transform .6s var(--ease-out);position:relative}.dv-laptop-screen{aspect-ratio:16/10;background:linear-gradient(160deg,#33363a 0%,#15171a 55%,#24272b 100%);border-radius:14px 14px 0 0;padding:1.6%;position:relative;box-shadow:inset 0 0 0 1px #ffffff2e}.dv-laptop-screen img{object-fit:cover;object-position:center top;border-radius:6px;width:100%;height:100%}.dv-set:not(.has-phone) .dv-laptop-screen img{object-fit:contain;background:#05070a}.dv-laptop-base{background:linear-gradient(#55585e 0%,#33363a 60%,#1f2124 100%);border-radius:0 0 14px 14px/0 0 100% 100%;width:112%;height:2.4cqw;min-height:9px;margin-left:-6%;display:block;position:relative}.dv-laptop-base:after{content:"";background:#00000059;border-radius:0 0 8px 8px;width:15%;height:40%;position:absolute;top:0;left:50%;transform:translate(-50%)}.dv-phone{background:linear-gradient(160deg,#33363a 0%,#15171a 60%,#24272b 100%);border-radius:4.4cqw;padding:1cqw;position:relative;box-shadow:inset 0 0 0 1px #fff3}.dv-phone img{aspect-ratio:430/932;object-fit:cover;object-position:center top;border-radius:3.5cqw;width:100%;height:auto}.dv-phone-notch{z-index:1;background:#0b0d0f;border-radius:999px;width:32%;height:1.7cqw;position:absolute;top:2.2cqw;left:50%;transform:translate(-50%)}.dv-phone.is-front{z-index:2;width:23%;position:absolute;bottom:-5%;left:0}.dv-phones{justify-content:center;align-items:center;width:100%;max-width:600px;display:flex}.dv-phones .dv-phone{flex:none;width:30%}.dv-phones .is-center{z-index:2;width:34%}.dv-phones .is-left{z-index:1;margin-right:-7%;rotate:-5deg}.dv-phones .is-right{z-index:1;margin-left:-7%;rotate:5deg}.slide.is-active .dv-laptop{animation:8.4s ease-in-out infinite dv-float}.slide.is-active .dv-phone{animation:6.6s ease-in-out infinite dv-float-phone}.slide.is-active .dv-phones .is-left{animation-duration:7.7s;animation-delay:-2s}.slide.is-active .dv-phones .is-right{animation-duration:8.9s;animation-delay:-4.4s}@keyframes dv-float{50%{transform:translateY(-1cqw)}}@keyframes dv-float-phone{50%{transform:translateY(-1.8cqw)}}.work-head{z-index:1;align-items:center;position:relative}.work-filters{flex-wrap:wrap;gap:8px;display:flex}.work-filters button{background:var(--surface-2);height:44px;color:var(--ink);cursor:pointer;border:0;padding:0 20px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s,color .2s}.work-filters button:hover{background:var(--line-strong)}.work-filters button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.slides-wrap{z-index:1;position:relative}.work-nav{justify-content:center;align-items:center;min-height:48px;margin-top:8px;display:flex;position:relative}.work-nav .work-controls{position:absolute;top:2px;right:0}.slide-status{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.slide-status span{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.slide-toggle svg{transition:rotate .2s var(--ease-out)}.slide-toggle svg.is-open{rotate:90deg}.mini-grid{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px;display:grid;position:relative}.mini-card{min-height:218px;transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);padding:20px 20px 70px}.mini-card:has(.mini-link):hover{transform:translateY(-4px)}.mini-kind{color:var(--muted);font-size:14px}.mini-card h3{letter-spacing:-.02em;margin-top:12px;font-size:20px;font-weight:600;line-height:1.15}.mini-link:after{content:"";z-index:2;position:absolute;inset:0}.mini-desc{max-width:54%;color:var(--ink-2);margin-top:10px;font-size:14px;line-height:1.45}.mini-card:has(.mini-tools) .mini-desc{max-width:none}.mini-status{color:var(--muted);margin-top:8px;font-size:14px}.mini-render{z-index:1;width:min(66%,290px);height:auto;transition:transform .4s var(--ease-out);position:absolute;bottom:12px;right:-42px}.mini-card:hover .mini-render{transform:translate(-4px)}.mini-arrow{z-index:1;background:var(--surface-2);width:38px;height:38px;color:var(--ink);place-items:center;display:grid;position:absolute;bottom:18px;left:20px}.mini-tools{z-index:1;align-items:center;gap:18px;display:flex;position:absolute;bottom:18px;right:18px}.mini-tools li{background:var(--surface-2);width:44px;height:44px;color:var(--ink);place-items:center;display:grid;position:relative}.mini-tools li+li:before{content:"→";color:var(--muted);font-size:12px;position:absolute;left:-14px}.mini-tools img{width:26px;height:auto}.more-work{z-index:1;position:relative}.work-dots{justify-content:center;gap:2px;display:flex}.work-dots button{cursor:pointer;background:0 0;border:0;align-items:center;width:36px;height:44px;padding:0 3px;display:flex}.work-dots button:before{content:"";background:var(--line-strong);width:100%;height:3px;transition:background .2s;display:block}.work-dots button.is-active:before{background:var(--accent)}.more-work{margin-top:56px}.more-work h3{letter-spacing:-.02em;margin-bottom:16px;font-size:20px;font-weight:600}.work-list{border-top:1px solid var(--line)}.work-list-row{border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:56px minmax(0,.75fr) minmax(0,1.25fr) 18px;align-items:start;gap:18px;padding:18px 0;font-size:16px;transition:color .2s;display:grid}a.work-list-row:hover{color:var(--accent)}.work-list-year{color:var(--muted);font-size:14px}.work-list-main{flex-direction:column;gap:2px;display:flex}.work-list-title{font-weight:600}.work-list-type{color:var(--muted);font-size:14px}.work-list-desc{color:var(--ink-2);font-size:14px;line-height:1.5}.card{background:var(--surface);position:relative}.lead-section{position:relative}.intro-shell{position:static}.intro{z-index:1;margin-bottom:32px;position:relative}.intro-row{grid-template-columns:minmax(0,1fr) minmax(0,480px);align-items:end;gap:32px;display:grid}.intro-row p{color:var(--ink-2);font-size:16px;line-height:1.6}.soft-card{z-index:1}:where(.soft-card>*){z-index:1;position:relative}.logo-tile{background:var(--surface-2);width:76px;height:76px;color:var(--ink);flex:none;place-items:center;display:grid}.logo-tile img{object-fit:contain;width:48px;height:48px}.tile-mark{width:42px;height:32px;color:var(--ink)}.chips,.chips ul{flex-wrap:wrap;gap:8px;display:flex}.chips>ul{display:contents}.chip{background:var(--surface-2);height:38px;color:var(--ink);white-space:nowrap;align-items:center;gap:8px;padding:0 13px;font-size:14px;font-weight:500;display:inline-flex}.chip svg{color:var(--ink);flex:none}.chip svg,.stack-icons svg{filter:brightness(1.35)}.chip-file{width:auto;height:18px}.chips-more summary{background:var(--surface-2);height:38px;color:var(--ink-2);cursor:pointer;align-items:center;padding:0 13px;font-size:14px;font-weight:500;list-style:none;display:inline-flex}.chips-more summary::-webkit-details-marker{display:none}.chips-more-open,.chips-more[open] .chips-more-closed{display:none}.chips-more[open] .chips-more-open{display:inline}.chips-more[open]{flex-basis:100%}.chips-more[open] summary{margin-bottom:8px}.xp-list{gap:24px;display:grid;position:relative}.xp-list:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:30px;bottom:40px;left:11px}.xp-item{padding-left:56px;position:relative}.xp-dot{border:2px solid var(--muted);background:var(--bg);border-radius:50%;width:23px;height:23px;position:absolute;top:30px;left:0}.xp-dot.is-current{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.xp-dot.is-current:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:3px}.xp-card{padding:30px 32px 32px}.xp-head{align-items:flex-start;gap:24px;display:flex}.xp-title{flex:1;min-width:0}.xp-title h3{letter-spacing:-.02em;font-size:20px;font-weight:600}.xp-company{color:var(--ink-2);margin-top:4px;font-size:16px}.xp-company a{align-items:center;gap:8px;transition:color .2s;display:inline-flex}.xp-company a svg{color:var(--ink)}.xp-company a:hover{color:var(--accent)}.xp-meta{color:var(--ink-2);flex-wrap:wrap;gap:6px 28px;margin-top:8px;font-size:14px;display:flex}.xp-meta span{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.xp-current{background:var(--accent-soft);height:34px;color:var(--accent);flex:none;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.xp-current span{background:var(--accent);border-radius:50%;width:8px;height:8px}.xp-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:36px;margin-top:24px;display:grid}.xp-summary p{color:var(--ink);margin-bottom:20px;font-size:16px;line-height:1.6}.xp-points{align-content:start;gap:12px;display:grid}.xp-points li{color:var(--ink);grid-template-columns:18px minmax(0,1fr);gap:14px;font-size:16px;line-height:1.5;display:grid}.xp-points svg{color:var(--muted);margin-top:3px}.education{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.edu-card{flex-direction:column;height:100%;padding:32px;display:flex}.edu-head{align-items:center;gap:24px;display:flex}.edu-period{color:var(--muted);font-size:14px}.edu-head h3{letter-spacing:-.02em;margin-top:6px;font-size:20px;font-weight:600}.edu-institution{color:var(--ink-2);margin-top:4px;font-size:16px}.edu-badges{flex-wrap:wrap;gap:10px;display:flex}.edu-badges li{background:var(--surface-2);height:40px;color:var(--ink);align-items:center;gap:8px;padding:0 16px;font-size:16px;display:inline-flex}.edu-badges svg{color:var(--ink)}.edu-badges .is-grade{background:var(--accent-soft)}.edu-badges strong{color:var(--accent);font-weight:600}.edu-card .chips,.edu-card .edu-badges{margin-top:24px}.edu-detail{color:var(--ink-2);margin:20px 0 24px;font-size:16px;line-height:1.55}.edu-cert{color:var(--ink-2);align-items:center;gap:24px;margin-top:auto;font-size:14px;display:flex}.edu-cert-paper{width:148px;transition:transform .3s var(--ease-out);flex:none}.edu-cert:hover .edu-cert-paper{transform:translateY(-3px)}.edu-cert-paper img{width:100%;height:auto;display:block}.edu-cert-text{flex-direction:column;gap:4px;min-width:0;display:flex}.edu-cert-text strong{color:var(--ink);font-size:16px;font-weight:600}.edu-cert-open{min-height:24px;color:var(--ink);align-items:center;gap:4px;margin-top:8px;font-weight:600;display:inline-flex}.edu-cert:hover .edu-cert-open{text-underline-offset:3px;text-decoration:underline}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.skill-group{padding:28px 30px 32px}.skill-group header{align-items:center;gap:22px;margin-bottom:22px;display:flex}.skill-group h3{letter-spacing:-.02em;font-size:20px;font-weight:600}.skill-group header p{color:var(--ink-2);margin-top:4px;font-size:16px;line-height:1.4}.about-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,4vw,56px);display:grid}.about-photo{object-fit:cover;object-position:center 18%;width:100%;height:100%;min-height:520px}.about-body{z-index:1;flex-direction:column;justify-content:center;gap:16px;padding:48px 48px 48px 0;display:flex;position:relative}.about-body h2{font-size:clamp(30px,3vw,40px)}.about-body>p{color:var(--ink-2);font-size:16px;line-height:1.6}.about-body>.about-lead{color:var(--ink);font-size:20px;font-weight:500;line-height:1.45}.about-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:16px 0 0;display:grid}.about-facts dt{color:var(--muted);font-size:14px}.about-facts dd{color:var(--ink);margin:3px 0 0;font-size:16px;font-weight:500}.about-body .btn{align-self:flex-start}.contact-section{padding-bottom:var(--section-gap)}.contact-intro{max-width:380px;color:var(--ink-2);font-size:14px;line-height:1.55}.contact-links{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.contact-links a{background:var(--surface);color:var(--ink);transition:transform .25s var(--ease-out), background .25s;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:22px 24px;display:grid;position:relative;overflow:hidden}.contact-links a:hover{background:var(--surface-2);transform:translateY(-3px)}.contact-label,.contact-value{grid-column:1}.contact-links a svg{color:var(--ink);grid-area:1/2/span 2}.contact-label{color:var(--muted);font-size:14px}.contact-value{letter-spacing:-.02em;word-break:break-word;font-size:20px;font-weight:600}.not-found{text-align:center;place-content:center;gap:18px;min-height:100svh;padding:24px;display:grid}.not-found p{color:var(--muted);font-size:14px}.not-found h1{letter-spacing:-.03em;max-width:18ch;font-size:clamp(28px,4vw,44px)}.not-found .btn{justify-self:center}.through,.finale{overflow-anchor:none;position:relative}.scene-rail{visibility:hidden;pointer-events:none;height:0;display:block}.run-mark{height:0;display:block}.through-tail{display:none}.hero,.lead-section,.card{overflow:clip}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm){--hold-through:1.6;--hold-icu:1.4;--hold-pull:1.4;--hero-over:0px;--hero-h:100svh}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm){--hold-through:.9;--hold-icu:.9;--hero-h:1090px;--hero-over:calc(1090px - 100svh)}}#lvh-probe{visibility:hidden;pointer-events:none;width:0;height:100lvh;position:fixed}.wipe{z-index:900;background:var(--bg);visibility:hidden;pointer-events:none;position:fixed;inset:0}@media (max-width:1100px){.slide-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px}}@media (max-width:999px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.mini-grid{grid-template-columns:1fr}.mini-desc{max-width:58%}.slide-copy{max-width:none}.slide-details{grid-template-columns:1fr;gap:22px}.work-head{flex-direction:column;align-items:flex-start}.btn-sm,.slide-toggle{height:44px}.site-nav{display:none}.site-header.is-open .site-nav{border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;gap:0;padding:8px 24px 20px;display:flex;position:absolute;top:100%;left:0;right:0;transform:none}.site-header.is-open .site-nav a{border-bottom:1px solid var(--line);padding:14px 0;font-size:20px}.site-header.is-open .site-nav a:last-child{border-bottom:0}.menu-button{place-items:center;display:grid}.hero{padding-top:108px}.hero-grid{grid-template-columns:minmax(0,1fr)}.hero:before{background:radial-gradient(90% 26% at 50% 57%,#ffffff0f,#0000 72%)}.stage{justify-self:center;width:min(94vw,715px);margin-top:12px}.slide-main{grid-template-columns:1fr;min-height:0}.xp-body{grid-template-columns:1fr;gap:22px}.intro-row{grid-template-columns:minmax(0,1fr);gap:10px}.education,.skills-grid,.about-layout{grid-template-columns:1fr}.about-photo{aspect-ratio:4/4.4;height:auto;min-height:0}.about-body{padding:8px 24px 32px}}@media (max-width:640px){.mini-card{min-height:0}.mini-render{width:54%;right:-24px}.work-filters button{padding:0 15px}.slide-actions .btn{flex:auto}.xp-list:before,.xp-dot{display:none}.xp-item{padding-left:0}.xp-card,.edu-card,.skill-group{padding:22px 20px 24px}.xp-head{flex-wrap:wrap;gap:14px}.logo-tile{width:60px;height:60px}.logo-tile img{width:40px;height:40px}.tile-mark{width:34px;height:26px}.xp-title{flex-basis:100%;order:1}.xp-current{margin-left:auto}.edu-head{gap:14px}.edu-cert{gap:16px}.edu-cert-paper{width:112px}.skill-group header{gap:14px}:root{--gutter:16px;--section-gap:80px}.header-inner{height:68px}.section-head{flex-direction:column;align-items:flex-start;gap:12px}.contact-links,.about-facts{grid-template-columns:1fr}.work-nav .work-controls{display:none}.slide-media{padding:8px 0}.work-list-row{grid-template-columns:48px minmax(0,1fr) 18px;gap:6px 12px}.work-list-row svg{grid-area:1/3}.work-list-desc{grid-column:2/-1}}@media (prefers-reduced-motion:reduce){.curtain{display:none}.hero-copy>*,.el,.el-float{animation:none}.el{translate:none}.ribbon-sheen:before,.slide.is-active .dv-laptop,.slide.is-active .dv-phone{animation:none}.btn,.edu-cert-paper,.contact-links a{transition:none}}
:root{--raised-hover:linear-gradient(180deg, #4a4c51, #424449);--logo-rest:grayscale(1) brightness(1.75) contrast(.9);--logo-lit:grayscale(0) brightness(1.35) contrast(1)}.work-section{background:var(--bg-device)}.circuit-field{display:none}.ribbon-sheen:before{background:linear-gradient(90deg,#fff0,#ffffffd9,#fff0)}.card{background:var(--plate), var(--surface);box-shadow:var(--edge)}.chip,.chips-more summary,.edu-badges li,.work-filters button,.work-controls button,.btn-outline,.btn-quiet,.site-header .btn-primary,.menu-button,.mini-arrow,.mini-tools li,.xp-current{background:var(--raised);box-shadow:var(--raised-edge)}.chips-more summary:hover,.btn-outline:hover,.menu-button:hover,.work-filters button:hover:not([aria-pressed=true]),.work-controls button:hover:not(:disabled){background:var(--raised-hover)}.work-filters button[aria-pressed=true]{background:var(--well);color:var(--ink);box-shadow:inset 0 1px 3px #0000008c,inset 0 -1px #ffffff0d}.work-controls button:hover:not(:disabled){color:var(--ink)}.work-controls button:disabled{box-shadow:none;background:0 0}.btn-quiet,.site-header .btn-primary{color:var(--ink);box-shadow:var(--raised-edge), inset 0 0 0 40px #d7ff5f00;transition:transform .2s var(--ease-out), box-shadow var(--t-hover) ease, color var(--t-hover) ease}.btn-quiet:hover,.btn-quiet:focus-visible,.site-header .btn-primary:hover,.site-header .btn-primary:focus-visible{background:var(--raised);color:var(--accent-ink);box-shadow:inset 0 1px 0 #fff0, 0 1px 2px #00000040, inset 0 0 0 40px var(--accent)}.work-dots button.is-active:before{background:var(--ink)}a.work-list-row:hover{color:var(--ink)}a.work-list-row .work-list-desc,a.work-list-row .work-list-year,a.work-list-row .work-list-type{transition:color var(--t-hover) ease}a.work-list-row:hover .work-list-desc{color:var(--ink)}a.work-list-row:hover .work-list-year,a.work-list-row:hover .work-list-type{color:var(--ink-2)}.xp-company a:hover,.xp-current{color:var(--ink)}.edu-badges .is-grade{background:var(--raised)}.edu-badges strong{color:var(--ink)}.logo-tile{box-shadow:var(--raised-edge)}.logo-tile img,.xp-card .chip svg,.xp-card .chip-file,.edu-card .chip svg,.edu-card .chip-file,.slide .chip svg,.slide .chip-file,.stack-icons svg,.stack-icons .chip-file,.mini-tools svg,.mini-tools img{filter:var(--logo-rest);transition:filter .32s}.logo-tile img[src$=hit\.svg]{--logo-rest:grayscale(1) brightness(2.15) contrast(.9)}.card:hover .logo-tile img,.card:focus-within .logo-tile img,.xp-card:hover .chip svg,.xp-card:focus-within .chip svg,.xp-card:hover .chip-file,.xp-card:focus-within .chip-file,.edu-card:hover .chip svg,.edu-card:focus-within .chip svg,.edu-card:hover .chip-file,.edu-card:focus-within .chip-file,.mini-card:hover .mini-tools svg,.mini-card:focus-within .mini-tools svg,.mini-card:hover .mini-tools img,.mini-card:focus-within .mini-tools img,.slide .chip:hover svg,.slide .chip:hover .chip-file,.stack-icons li:hover svg,.stack-icons li:hover .chip-file{filter:var(--logo-lit)}@media (hover:none){.logo-tile img{filter:var(--logo-lit)}}@supports (animation-timeline:view()){@media (hover:none) and (prefers-reduced-motion:no-preference){.xp-card,.edu-card{view-timeline:--logo-tile block}.logo-tile img{animation:linear both logo-lights;animation-timeline:--logo-tile;animation-range:entry calc(min(50%,320px) - 48px) entry min(50%,320px)}.card.is-logo-lit .logo-tile img{animation:none}}}@keyframes logo-lights{0%{filter:var(--logo-rest)}to{filter:var(--logo-lit)}}.mini-render,.dv-phone img,.icu-app{filter:brightness(.92)}.edu-cert-paper img{filter:brightness(.88);transition:filter .32s}.edu-cert:hover .edu-cert-paper img,.edu-cert:focus-visible .edu-cert-paper img{filter:none}.card:before{border-radius:inherit;background:radial-gradient(320px circle at var(--x,50%) var(--y,50%), #ffffff59, transparent 70%);-webkit-mask-composite:xor;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.contact-links a:before{content:none}@media (prefers-reduced-motion:reduce){.logo-tile img,.xp-card .chip svg,.xp-card .chip-file,.edu-card .chip svg,.edu-card .chip-file,.slide .chip svg,.slide .chip-file,.stack-icons svg,.stack-icons .chip-file,.mini-tools svg,.mini-tools img,.edu-cert-paper img,.btn-quiet,.site-header .btn-primary{transition:none}}
.curtain{color:var(--ink);animation:.52s cubic-bezier(.83,0,.17,1) .56s both curtain-up}.curtain-mark{animation:none;overflow:visible}.curtain-stroke{fill:none;stroke:#fff;stroke-dasharray:1 1;stroke-dashoffset:1px}.curtain-stroke-a{stroke-width:110px;stroke-linejoin:round;animation:.29s cubic-bezier(.65,0,.35,1) 40ms forwards curtain-draw}.curtain-stroke-i{stroke-width:100px;animation:.19s cubic-bezier(.65,0,.35,1) .33s forwards curtain-draw}@keyframes curtain-draw{to{stroke-dashoffset:0}}html.no-curtain .curtain{display:none}.curtain-i{z-index:1001;background:var(--ink);transform-origin:0 0;pointer-events:none;border-radius:1px;display:none;position:fixed;top:0;left:0}html.i-flying .curtain-i{display:block}html.i-flying .hero h1:first-letter{color:#0000}.hero .hero-copy>*{animation-delay:calc(.62s + var(--i,0) * 80ms)}.stage-hero .el-ribbon{--delay:.8s}.stage-hero .el-laptop{--delay:.95s}.stage-hero .el-phone{--delay:1.15s}.stage-hero .el-chip-code{--delay:1.4s}.stage-hero .el-chip-cloud{--delay:1.54s}.stage-hero .el-chip-spark{--delay:1.68s}html.no-curtain .hero .hero-copy>*{animation-delay:calc(80ms + var(--i,0) * 80ms)}html.no-curtain .stage-hero .el-ribbon{--delay:.25s}html.no-curtain .stage-hero .el-laptop{--delay:.4s}html.no-curtain .stage-hero .el-phone{--delay:.6s}html.no-curtain .stage-hero .el-chip-code{--delay:.85s}html.no-curtain .stage-hero .el-chip-cloud{--delay:.99s}html.no-curtain .stage-hero .el-chip-spark{--delay:1.13s}.hero-actions .link-arrow{min-height:44px}@media (min-width:560px) and (max-width:900px) and (orientation:landscape) and (max-height:500px){.hero{padding-top:84px}.hero:before{background:radial-gradient(44% 56% at 72% 42%,#ffffff12,#0000 72%)}.hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,46vw);gap:16px}.hero h1{font-size:clamp(34px,5.4vw,48px)}.hero .hero-lede{margin-top:14px;font-size:15px}.hero .hero-actions{margin-top:16px}.hero .stage{justify-self:end;width:46vw;margin-top:0}.hero .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.hero .stats strong{font-size:30px}.hero .stats span{font-size:14px}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4),screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) .through:where(:has(>.scene-rail:not(.is-rest))){grid-template-columns:minmax(0,1fr);display:grid}html.js:not(.calm) .through:where(:has(>.scene-rail:not(.is-rest)))>*{grid-area:1/1}html.js:not(.calm) .through:where(:has(>.scene-rail:not(.is-rest)))>.hero{top:calc(100svh - max(100svh, var(--hero-h)));z-index:2;align-self:start;position:sticky}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work{z-index:1;position:relative}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{position:sticky;top:0}html.js:not(.calm):not(.is-armed) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work{visibility:hidden}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest))) .through-tail{height:calc(var(--hold-through) * 100lvh + var(--hero-over));display:block}html.js:not(.calm) .through>.scene-rail:where(:not(.is-rest)){left:0;top:var(--hero-over);width:1px;height:calc((var(--hold-through) + 1) * 100lvh);position:absolute}html.js:not(.calm) .through:where(:has(>.scene-rail:not(.is-rest)))>#work.run-mark{top:calc(var(--hold-through) * 100lvh + var(--hero-over) + var(--scroll-pad));position:absolute}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work{pointer-events:none}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{pointer-events:auto}html.js:not(.calm) .through:where(:has(>.scene-rail:not(.is-rest))){overflow-x:clip}html.js:not(.calm) .through-work>.work-section{transform-origin:0 0}html.js:not(.calm) .scene-rail.is-live~.hero .through-line{z-index:3;left:calc((100% - var(--shell)) / 2);top:calc(var(--hero-over) + 50svh);color:var(--ink);font-size:var(--type-scene);letter-spacing:-.045em;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;font-weight:600;line-height:1.02;display:block;position:absolute;translate:0 -50%}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) .through-work{z-index:3}html.js:not(.calm) .scene-rail.is-live~.hero .through-line{top:calc(96px + var(--hero-over));font-size:34px;translate:none}@media (max-height:779px){html.js:not(.calm) .scene-rail.is-live~.hero .through-line{top:auto;bottom:40px}}@media (min-resolution:2x){html.js:not(.calm) .scene-rail.is-live~.hero :is(.hero-copy,.stats-section){will-change:transform, opacity}}html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{padding-top:104px}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{padding-top:max(clamp(88px, 16svh, 136px), min(var(--scroll-pad) + var(--section-gap), 100svh - 634px))}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4) and (max-height:720px){html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{--land-column:calc((min(1240px, 100% - var(--gutter) * 2) - clamp(40px, 6vw, 88px)) * .575);--land-head:62px;padding-top:clamp(16svh, 100svh - var(--land-head) - var(--type-h2) - .713 * min(620px, (100svh - 280px) * 1.45, var(--land-column)), var(--scroll-pad) + var(--section-gap))}@media (max-width:1100px){html.js:not(.calm) :where(.through:has(>.scene-rail:not(.is-rest)))>.through-work>.work-section{--land-column:calc((min(1240px, 100% - var(--gutter) * 2) - 36px) / 2);--land-head:130px}}}.through-line{display:none}.stage-hero .el-shell{opacity:0;position:absolute;top:0;left:0}.stage-hero .el-laptop .el-art{position:relative}.stage-hero .el-screen{object-fit:cover;object-position:center top;transform-origin:0 0;opacity:0;filter:brightness(.92);pointer-events:none;border-radius:32px;width:430px;max-width:none;height:932px;position:absolute;top:0;left:0}.ribbon-sheen[data-paused]:before{animation-play-state:paused}.scene-rail.is-live~.hero :is(.hero-copy,.stats-section):after,.scene-rail.is-live~.through-work>.work-section:after{content:"";z-index:100;visibility:hidden;position:absolute;inset:0}.scene-rail.is-live~.hero :is(.hero-copy,.stats-section)[data-shield]:after,.scene-rail.is-live~.through-work>.work-section[data-shield]:after{visibility:inherit}.stage-hero[data-flying] .el{transition:translate .3s var(--ease-out);translate:0}.scene-rail.is-live~.hero :is(.el-fly,.circuit,.through-line),.scene-rail.is-live~.hero:before,.hero[data-flight] :is(.hero-copy,.stats-section){will-change:transform, opacity}.scene-rail.is-live~.hero :is(.el-laptop .el-art,.el-screen){will-change:opacity}.hero[data-flight] .el-ribbon{clip-path:none!important}.hero[data-held]{pointer-events:none}.hero[data-held] :is(.stage,.through-line,.circuit){visibility:hidden}.hero[data-held] .el-float,.hero[data-held] .ribbon-sheen:before{animation-play-state:paused}@property --key{syntax:"<number>";inherits:false;initial-value:1}.hero:before,.hero>.circuit{--key:inherit}.hero .circuit{opacity:var(--key,1)}.stage-hero .el-screen[data-rest]{opacity:0}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.hero{view-timeline:--through-hero block}.stage-hero .el-screen[data-rest]{animation:linear both through-screen-on;animation-timeline:--through-hero;animation-range:exit exit 40%}}}@keyframes through-screen-on{0%{opacity:0}to{opacity:1}}.scene-rail.is-live~.hero :is(.hero-copy,.stats-section){transition:opacity .36s var(--ease-out) .16s, transform .52s var(--ease-out) .16s}.scene-rail.is-live~.hero :is(.hero-copy,.stats-section)[data-gone]{clip-path:inset(50%);transition:opacity .3s var(--ease-out), transform .52s var(--ease-out), clip-path 0s linear .3s;transition-behavior:allow-discrete}html.js:not(.calm) .scene-rail.is-live~.hero .through-line{transition:opacity .3s var(--ease-out), transform .52s var(--ease-out), visibility 0s linear .3s}html.js:not(.calm) .scene-rail.is-live~.hero .through-line[data-shown]{visibility:visible;transition:opacity .36s var(--ease-out) .16s, transform .52s var(--ease-out) .16s}.scene-rail.is-live~.hero .stage-hero .el-screen:not([data-rest]){transition:opacity .3s var(--ease-out)}.scene-rail.is-live~.hero[data-instant] :is(.hero-copy,.stats-section,.through-line,.el-screen),html.js:not(.calm) .scene-rail.is-live~.hero[data-instant] .through-line,.scene-rail.is-live~.hero[data-instant] .stage-hero .el-screen:not([data-rest]){transition:none}.scene-rail.is-live~.through-work>.work-section,.scene-rail.is-live~.hero .el-laptop .el-art{transition:opacity .36s var(--ease-out)}.scene-rail.is-live~.hero .el-laptop .el-art[data-gone]{visibility:hidden;transition:opacity .36s var(--ease-out), visibility 0s linear .36s}.scene-rail.is-live~.through-work>.work-section[data-instant],.scene-rail.is-live~.hero[data-instant] .el-laptop .el-art,.scene-rail.is-live~.hero[data-instant] .el-laptop .el-art[data-gone]{transition:none}
@supports (animation-timeline:view()){@media screen and (prefers-reduced-motion:no-preference){html.is-lite:not(.calm){--lite-side:clamp(10px, 2.4vw, 20px);--lite-round:22px;--lite-rise:clamp(40px, 9svh, 96px);--lite-stage-range:contain 0% exit 40%;--lite-ease:cubic-bezier(.37, 0, .63, 1);--lite-settle:cubic-bezier(.33, 1, .68, 1);--lite-phone-x:-7cqw;--lite-phone-y:3cqw}html.is-lite:not(.calm) .hero{view-timeline-inset:0px}html.is-lite:not(.calm) .hero .hero-copy{animation:lite-lift var(--lite-ease) both;animation-timeline:--through-hero;animation-range:contain exit 30%}html.is-lite:not(.calm) .hero .stats-section{animation:lite-lift-far var(--lite-ease) both;animation-timeline:--through-hero;animation-range:contain exit 60%}html.is-lite:not(.calm) .stage-hero .el-fly{transform-origin:50%;animation-duration:auto;animation-timing-function:var(--lite-ease);animation-fill-mode:both;animation-timeline:--through-hero;animation-range:var(--lite-stage-range)}html.is-lite:not(.calm) .stage-hero .el-laptop .el-fly{animation-name:lite-part-laptop}html.is-lite:not(.calm) .stage-hero .el-phone .el-fly{animation-name:lite-part-phone}html.is-lite:not(.calm) .stage-hero .el-ribbon .el-fly{animation-name:lite-recede}html.is-lite:not(.calm) .stage-hero .el-chip-code .el-fly{animation-name:lite-chip-code}html.is-lite:not(.calm) .stage-hero .el-chip-cloud .el-fly{animation-name:lite-chip-cloud}html.is-lite:not(.calm) .stage-hero .el-chip-spark .el-fly{animation-name:lite-chip-spark}html.is-lite:not(.calm) .hero:before,html.is-lite:not(.calm) .hero .circuit{animation:lite-fade var(--lite-ease) both;animation-timeline:--through-hero;animation-range:var(--lite-stage-range)}html.is-lite:not(.calm) .stage-hero .el-screen[data-rest]{animation-name:lite-screen-on;animation-timing-function:linear;animation-timeline:--through-hero;animation-range:var(--lite-stage-range)}html.is-lite:not(.calm) .through-work>.work-section{view-timeline:--lite-work block;view-timeline-inset:0px;animation:lite-rise var(--lite-settle) backwards, lite-open var(--lite-settle) backwards;animation-timeline:--lite-work;animation-range:entry entry 45%}html.is-lite:not(.calm) .through-work>.work-section:before{content:"";pointer-events:none;height:1px;animation:lite-fade var(--lite-settle) both;background:linear-gradient(90deg,#fff0,#ffffff21 24% 76%,#fff0);animation-timeline:--lite-work;animation-range:entry entry 45%;position:absolute;top:0;left:0;right:0}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:900px){html.is-lite:not(.calm){--lite-stage-range:contain 0% exit 20%;--lite-phone-x:-12cqw;--lite-phone-y:1cqw}html.is-lite:not(.calm) .hero .hero-copy{animation-range:contain exit 25%}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:560px) and (max-width:900px) and (orientation:landscape) and (max-height:500px){html.is-lite:not(.calm){--lite-stage-range:contain 0% exit 40%;--lite-phone-x:-7cqw;--lite-phone-y:3cqw}html.is-lite:not(.calm) .hero .hero-copy{animation-range:contain exit 30%}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:640px){html.is-lite:not(.calm){--lite-side:clamp(8px, 2.4vw, 14px);--lite-round:18px}}}@keyframes lite-lift{to{transform:translateY(-30%)}}@keyframes lite-lift-far{to{transform:translateY(-40%)}}@keyframes lite-part-laptop{to{transform:translate(16cqw,-1cqw)scale(.94)}}@keyframes lite-part-phone{to{transform:translate(var(--lite-phone-x), var(--lite-phone-y)) rotate(-3deg) scale(.96)}}@keyframes lite-recede{25%,to{opacity:0;transform:scale(.92)}}@keyframes lite-chip-code{60%,to{opacity:0;transform:translate(2cqw,-8cqw)scale(.72)}}@keyframes lite-chip-cloud{60%,to{opacity:0;transform:translate(9cqw,-2cqw)scale(.72)}}@keyframes lite-chip-spark{60%,to{opacity:0;transform:translate(-9cqw,3cqw)scale(.72)}}@keyframes lite-fade{to{opacity:0}}@keyframes lite-screen-on{0%,50%{opacity:0}55%,to{opacity:1}}@keyframes lite-rise{0%{transform:translateY(var(--lite-rise))}}@keyframes lite-open{0%{clip-path:inset(0 var(--lite-side) 0 var(--lite-side) round var(--lite-round) var(--lite-round) 0 0)}to{clip-path:inset(0)}}
@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4),screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall{height:calc((var(--hold) + 1) * 100lvh)}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall>.scene-stage{height:100lvh;position:sticky;top:0;overflow:clip}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall.icu{height:auto;margin-top:var(--section-gap)}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall:after{content:"";height:calc(var(--hold) * 100lvh);display:block}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall>.scene-stage{top:max(68px, calc((100svh + 56px - var(--icu-h,480px)) / 2));height:auto;padding:0 0 28px}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall.icu{height:auto;margin-top:160px}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall.icu:after{content:"";height:calc(var(--hold) * 100lvh);display:block}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .scene-tall.icu>.scene-stage{--icu-pad:calc(24px + clamp(0px, (100svh - 600px) * .4, 44px));top:clamp(76px, calc((100svh + 60px + var(--icu-pad) - var(--icu-h,600px)) / 2), 232px);height:auto;padding:0 0 var(--icu-pad)}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .icu-highlights{margin-top:96px}}.icu{--hold:var(--hold-icu)}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4),screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) .icu-rail:where(:not(.is-rest)){left:0;top:var(--icu-at,0px);width:1px;height:calc((var(--hold-icu) + 1) * 100lvh);position:absolute}}@media (max-width:1100px){.work-head{flex-direction:column;align-items:flex-start}}.work-filters{position:relative}.filter-well{z-index:0;border-radius:var(--radius-sm);background:var(--well);opacity:0;pointer-events:none;width:0;height:0;transition:transform var(--t-ui) var(--ease-out), width var(--t-ui) var(--ease-out), height var(--t-ui) var(--ease-out);position:absolute;top:0;left:0;box-shadow:inset 0 1px 3px #0000008c,inset 0 -1px #ffffff0d}.work-filters[data-well] .filter-well{opacity:1}.work-filters[data-well] button,.work-filters[data-well] button:hover:not([aria-pressed=true]),.work-filters[data-well] button[aria-pressed=true]{z-index:1;isolation:isolate;box-shadow:none;background:0 0;position:relative}.work-filters[data-well] button:before{content:"";z-index:-1;border-radius:inherit;background:var(--raised);box-shadow:var(--raised-edge);transition:opacity var(--t-ui) var(--ease-out);position:absolute;inset:0}.work-filters[data-well] button:hover:not([aria-pressed=true]):before{background:var(--raised-hover)}.work-filters[data-well] button[aria-pressed=true]:before{opacity:0}@media (forced-colors:active){.work-filters button{border:1px solid buttontext}.work-filters button[aria-pressed=true],.work-filters[data-well] button[aria-pressed=true]{forced-color-adjust:none;color:highlighttext;background:highlight}}.slide-statement{color:var(--ink);letter-spacing:-.015em;text-wrap:pretty;margin-top:12px;font-size:20px;font-weight:500;line-height:1.35}.slide-statement+.slide-desc{margin-top:12px}.slide-copy .slide-desc{text-wrap:pretty}.source-link svg{display:none}@media (min-width:901px) and (hover:hover){html.js .has-demo .source-link,html.js .has-demo .source-link:hover{height:40px;box-shadow:none;color:var(--ink);background:0 0;gap:8px;padding:0 6px 0 0;font-size:14px;transform:none}html.js .has-demo .source-link svg{display:block}}.work-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.work-nav{justify-content:flex-end;gap:18px}.work-nav .work-controls{position:static}@media (max-width:640px){.work-nav .work-controls{display:flex}}.work-controls button[aria-disabled=true],.work-controls button[aria-disabled=true]:hover{box-shadow:none;color:var(--muted);cursor:default;background:0 0;transform:none}.slides:focus-visible{outline-offset:6px}@media screen{.slide-media{clip-path:inset(-50% -50% -50% 0)}}@media screen and (max-width:900px){.slide-media{clip-path:inset(-50% 0)}}@media (min-width:901px){.slide-main{min-height:max(520px, var(--copy-h,0px))}}@media (min-width:901px) and (max-height:720px){.slide-main{align-items:start}.slide-copy h3{margin-top:12px;font-size:clamp(30px,min(3vw,5.4svh),40px)}.slide-copy .slide-statement,.slide-copy .slide-statement+.slide-desc{margin-top:10px}.slide-copy .slide-desc{line-height:1.5}.slide-copy>.stack-icons{margin-top:18px}.slide-copy>.slide-actions{row-gap:4px;margin-top:22px}}.slide.is-active .dv-laptop,.slide.is-active .dv-set .dv-phone{animation:none}.dv-phones{transition:--amp .9s var(--ease-in-out)}html.is-armed .work-section:not([data-landed]) .dv-phones{--amp:0}html.is-armed .work-section:not([data-landed]) .dv-phones .dv-phone{animation-play-state:paused}@media (prefers-reduced-motion:no-preference){.slide.is-active .dv-phones .dv-phone{animation-name:phone-drift}}@keyframes phone-drift{50%{transform:translate3d(0, calc(-1.8cqw * var(--amp)), 0)}}.dv-phones .is-left img{filter:brightness(.86)}.dv-set:not(.has-phone) .dv-laptop-screen img{background:var(--screen-bg,#05070a)}.dv-phones,.dv-set{max-width:min(620px,max(300px,145svh - 406px));container-type:inline-size}@media (min-width:901px){.icu .dv-set{max-width:min(760px,max(300px,145svh - 406px))}}@media screen and (min-width:1441px){.icu-grid,.icu-highlights{width:min(100% - var(--gutter) * 2, 1240px + (100% - 1440px) * .29, 1480px)}.icu .icu-grid{grid-template-columns:minmax(0,1fr) minmax(0,490px)}.icu .dv-set{max-width:min(900px,max(300px,145svh - 406px))}}@supports (animation-timeline:view()){@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html:not(.calm) .slide{z-index:calc(20 - var(--i,0));view-timeline:--slide inline;position:relative;container-type:inline-size}html:not(.calm) .slide[data-prev=same] .slide-media{animation:linear both held-in;animation-timeline:--slide;animation-range:entry}html:not(.calm) .slide[data-next=same] .slide-media{animation:linear both held-out;animation-timeline:--slide;animation-range:exit}html:not(.calm) .slide[data-prev=same][data-next=same] .slide-media{animation-composition:replace,add;animation:linear both held-in,linear both held-out;animation-timeline:--slide,--slide;animation-range:entry,exit}html:not(.calm) .slide[data-next=same] .dv-set{animation:linear both screen-wipe;animation-timeline:--slide;animation-range:exit 12% exit 88%}html:not(.calm) .slide[data-next=same] .slide-copy{animation:linear both copy-out,linear both copy-edge;animation-timeline:--slide,--slide;animation-range:exit exit 45%,exit}html:not(.calm) .slide[data-prev=same] .slide-copy>*{animation:linear both copy-in;animation-timeline:--slide;animation-range:entry 55%}}}@keyframes held-in{0%{transform:translate(-100cqw)}to{transform:none}}@keyframes held-out{0%{transform:none}to{transform:translate(100cqw)}}@keyframes screen-wipe{0%{clip-path:inset(-20% 0% -20% -20%)}to{clip-path:inset(-20% 100% -20% -20%)}}@keyframes copy-out{to{opacity:0}}@keyframes copy-edge{0%{clip-path:inset(-24px -24px -24px -8px)}to{clip-path:inset(-24px -24px -24px calc(100cqw - 8px))}}@keyframes copy-in{0%{opacity:0}}@media screen and (max-width:900px){.slides{align-items:stretch}.slide{flex-direction:column;display:flex}.slide-main{flex:1 0 auto;grid-template-rows:minmax(0,1fr) auto}.slide-media{align-self:center}html:not(.js) .slide-main{flex-grow:0}.slides:has(.slide-details:not([hidden])) .slide-main{flex-grow:0}}.mini-card h3{position:static}.mini-source{z-index:3;border-radius:var(--radius-sm);height:36px;color:var(--muted);transition:color var(--t-hover) ease;align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:500;display:inline-flex;position:absolute;top:12px;right:12px}.mini-source:hover,.mini-source:focus-visible{color:var(--ink)}@media (pointer:coarse){.mini-source:after{content:"";position:absolute;inset:-4px}}@media (hover:none){.slide.is-active :is(.stack-icons svg,.stack-icons .chip-file,.chip svg,.chip-file),:is(.icu,.icu-more) .stack-icons :is(svg,.chip-file),.mini-grid.is-in .mini-tools :is(svg,img),html:not(.js) .mini-tools :is(svg,img){filter:var(--logo-lit)}}@media (prefers-reduced-motion:no-preference){html.js .mini-render{animation:render-dock .7s var(--ease-expo) calc(var(--i,0) * 90ms) backwards paused}html.js .mini-grid.is-in .mini-render{animation-play-state:running}}@keyframes render-dock{0%{transform:translate(24px)}}.work-list{border-top:0}.work-list-row{border-bottom:0}.work-list:before,.work-list>li:after{content:"";background:var(--line);transform-origin:0;height:1px;display:block}@media (prefers-reduced-motion:no-preference){html.js .work-list:before,html.js .work-list>li:after{animation:hairline-draw .6s var(--ease-expo) both paused}html.js .work-list>li:after{animation-delay:calc(60ms + var(--i,0) * 60ms)}html.js .work-list .work-list-row{animation:row-rise .7s var(--ease-expo) calc(var(--i,0) * 60ms) both paused}html.js .work-list.is-in:before,html.js .work-list.is-in>li:after,html.js .work-list.is-in .work-list-row{animation-play-state:running}}@keyframes hairline-draw{0%{transform:scaleX(0)}}@keyframes row-rise{0%{opacity:0;transform:translateY(12px)}}.live-demo{display:none}@media (min-width:901px) and (hover:hover){html.js .live-demo{display:inline-flex}html.js .has-demo .live-link{background:var(--raised);box-shadow:var(--raised-edge);color:var(--ink)}html.js .has-demo .live-link:hover{background:var(--raised-hover)}}.demo{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.demo[open]{place-items:center;display:grid}.demo::backdrop{background:#25272bf0}.demo-close{z-index:1;position:absolute;top:20px;right:24px}.demo-device{width:min(82vw,126.28svh);container-type:inline-size}.demo-screen{aspect-ratio:16/10;background:linear-gradient(160deg,#33363a 0%,#15171a 55%,#24272b 100%);border-radius:1.2cqw 1.2cqw 0 0;position:relative;box-shadow:inset 0 0 0 1px #ffffff2e}.demo-screen>img,.demo-screen>iframe{background:#05070a;border:0;border-radius:.5cqw;width:calc(100% - 2.4cqw);height:calc(100% - 2.4cqw);position:absolute;inset:1.2cqw}.demo-screen>img{object-fit:contain;transition:opacity .18s}.demo-screen:has(>iframe.is-loaded)>img{opacity:0}.demo-screen>iframe{opacity:0;transition:opacity .42s}.demo-screen>iframe.is-loaded{opacity:1;transition-delay:.18s}.demo-base{background:linear-gradient(#55585e 0%,#33363a 60%,#1f2124 100%);border-radius:0 0 14px 14px/0 0 100% 100%;width:112%;height:2.4cqw;margin-left:-6%;display:block;position:relative}::view-transition-group(demo-device){animation-duration:.46s;animation-timing-function:var(--ease-in-out)}::view-transition-old(demo-device){opacity:0;animation:none}::view-transition-new(demo-device){animation:none}::view-transition-old(root){animation-duration:.28s}::view-transition-new(root){animation-duration:.28s}.icu{margin-top:var(--section-gap);position:relative}.icu-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(40px,6vw,88px);display:grid}.icu-media{place-items:center;padding:16px 0;display:grid;position:relative;container-type:inline-size}.icu-screen{width:100%;height:100%;position:relative}.icu-sheet{display:none;position:absolute;inset:0}.icu-line{background:var(--accent);pointer-events:none;will-change:transform, opacity;width:1.5px;display:none;position:absolute;top:-10px;bottom:-10px;left:-.75px}.icu.is-live .icu-sheet,.icu.is-live .icu-line{display:block}.icu-copy{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.icu-name{color:var(--ink);letter-spacing:-.02em;margin-top:14px;font-size:18px;font-weight:600}.icu-statement{font-size:var(--type-scene);letter-spacing:-.045em;margin-top:16px;font-weight:600;line-height:1.02}.icu-statement em{color:var(--accent);font-style:normal}.icu-copy>.icu-desc{max-width:460px;margin-top:26px}.icu-note{color:var(--muted);margin-top:18px;font-size:14px}.icu-more{display:none}.icu-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 48px;margin-top:64px;display:grid}.icu-highlights li{max-width:calc(38ch + 30px);color:var(--ink-2);grid-template-columns:18px minmax(0,1fr);gap:12px;font-size:15px;line-height:1.55;display:grid}.icu-highlights svg{color:var(--muted);margin-top:2px}@media (max-width:900px){.icu-grid{grid-template-columns:minmax(0,1fr);gap:28px}.icu-copy{order:-1}.icu-highlights{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:40px}.icu-highlights li{max-width:none}}@media (min-width:601px) and (max-width:900px){.icu-highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm) .icu{margin-top:0}html.js:not(.calm) .icu-stage{align-items:center;padding:76px 0 16px;display:grid}html.js:not(.calm) :where(.through-work:has(>.icu-rail:not(.is-rest))) .icu-copy{margin-bottom:calc(-1*clamp(0px,40svh - 240px,44px))}}@media screen and (prefers-reduced-motion:no-preference) and (max-width:600px) and (min-height:560px) and (orientation:portrait){html.js:not(.calm) .icu{margin-top:0}html.js:not(.calm) .icu-stage{align-items:center;padding:68px 0 calc(12px + 100lvh - 100svh);display:grid}html.js:not(.calm) .icu-grid{gap:24px}html.js:not(.calm) .icu-device{padding-left:0}html.js:not(.calm) .icu-phone,html.js:not(.calm) .icu-copy>.icu-desc,html.js:not(.calm) .icu-copy>.stack-icons,html.js:not(.calm) .icu-copy>.icu-note{display:none}html.js:not(.calm) .icu-more{grid-template-columns:minmax(0,.38fr) minmax(0,.62fr);align-items:start;gap:20px;display:grid;container-type:inline-size}html.js:not(.calm) .icu-highlights{margin-top:32px}}.icu-more-copy .slide-desc{margin-top:0;font-size:15px;line-height:1.55}.icu-more-copy .stack-icons{gap:min(12px,2.6cqw);margin-top:18px}.icu-more-copy .icu-note{text-wrap:pretty}.chin{margin-top:96px;display:block}.chin-bezel{background:#08090b;place-items:center;height:34px;display:grid}.chin-bezel span{color:#7c8089;letter-spacing:.01em;font-size:12px;font-weight:500}.chin-lip{background:linear-gradient(#111316,#2a2d32);height:10px}.chin-deck{background:linear-gradient(#8c8f94,#6d7076 18%,#47494f 62%,#2c2e33);height:26px;position:relative}.chin-notch{background:linear-gradient(#55585e,#6b6e74);border-radius:0 0 9px 9px;width:210px;height:9px;margin-left:-105px;position:absolute;top:0;left:50%}.chin-ports{gap:9px;display:flex;position:absolute;top:9px;right:34px}.chin-ports b{background:#14161a;border-radius:1.5px;width:13px;height:7px;display:block}.chin-ports b:first-child{width:26px}@media (max-width:640px){.work-section{border-radius:0 0 46px 46px;padding-bottom:48px}.chin{background:var(--ink);border-radius:9px;width:134px;height:5px;margin:0 0 0 -67px;position:absolute;bottom:18px;left:50%}.chin>*{display:none}}html:not(.js) .slide-details[hidden]{display:grid}html:not(.js) :is(.slide-toggle,.work-filters,.work-nav){display:none}@media (prefers-reduced-motion:reduce){.filter-well,.work-filters[data-well] button:before,.dv-phones,.demo-screen>img,.demo-screen>iframe{transition:none}}.icu.is-live .icu-copy>:is(.stack-icons,.icu-note){transition:opacity .36s var(--ease-out), transform .52s var(--ease-out)}.icu.is-live .icu-copy>.icu-note{transition-delay:60ms}.icu.is-live .icu-statement em{transition:color .4s var(--ease-out)}.icu.is-live .icu-phone{transition:opacity .2s var(--ease-out)}.icu.is-live[data-instant] :is(.icu-copy>.stack-icons,.icu-copy>.icu-note,.icu-statement em,.icu-phone){transition:none}
@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm) .finale:where(:has(>.scene-rail:not(.is-rest))){height:calc((var(--hold-pull) + 1) * 100lvh);grid-template-columns:minmax(0,1fr);display:grid;overflow-x:clip}html.js:not(.calm) .finale:where(:has(>.scene-rail:not(.is-rest)))>*{grid-area:1/1}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-about{z-index:1;background:var(--bg);align-content:center;height:100lvh;display:grid;position:sticky;top:0}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-contact{z-index:2;pointer-events:none;height:100lvh;position:sticky;top:0;overflow:clip}html.js:not(.calm) .finale>.scene-rail:where(:not(.is-rest)){width:1px;height:100%;position:absolute;top:0;left:0}html.js:not(.calm) .finale:where(:has(>.scene-rail:not(.is-rest)))>#about.run-mark{top:var(--scroll-pad);position:absolute}html.js:not(.calm) .finale:where(:has(>.scene-rail:not(.is-rest)))>#contact.run-mark{top:calc(var(--hold-pull) * 100lvh + var(--scroll-pad));position:absolute}html.js:not(.calm):not(.is-armed) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-contact{visibility:hidden}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-about>.about-section{padding-top:0}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-about{padding-top:var(--section-gap);align-content:start}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest))) .about-layout{max-height:calc(100lvh - var(--section-gap) - 28px);grid-template-rows:minmax(0,1fr)}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-about .circuit{visibility:hidden}html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest)))>.finale-contact>.contact-section{height:100%;min-height:0;padding:88px 0 var(--hero-end)}}.scene-rail.is-live~.finale-about{transform-origin:0 0}.scene-rail.is-live~.finale-contact .stage-finale .el{animation:none}.scene-rail.is-live~.finale-contact .stage-finale :is(.el-fly,.finale-glint){will-change:transform, opacity}.scene-rail.is-live~.finale-contact .stage-finale .el-laptop .el-art{will-change:opacity}.stage-finale .el-shell{opacity:0;pointer-events:none;position:absolute;top:0;left:0}.stage-finale .el-laptop .el-art{position:relative}.stage-finale[data-flying] .el{transition:translate .3s var(--ease-out);translate:0}.stage-finale[data-flying] .ribbon-sheen:before{visibility:hidden;animation-play-state:paused}.finale-glint{visibility:hidden;pointer-events:none;background:linear-gradient(90deg,#d7ff5f00,#d7ff5fcc,#d7ff5f00);width:26%;position:absolute;top:-20%;bottom:-20%;left:0}.about-screen{visibility:hidden;pointer-events:none;transition:opacity 0s linear .38s,visibility 0s linear .38s;position:absolute;top:0;left:0;overflow:clip}.about-screen[data-shown]{transition:none}.about-screen img{transform-origin:0 0;will-change:transform;width:900px;max-width:none;height:1200px;position:absolute;top:0;left:0}@supports (animation-timeline:view()){@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px) and (min-height:600px) and (min-aspect-ratio:5/4){html.js:not(.calm) :where(.finale:has(>.scene-rail:not(.is-rest))) .about-lead.is-filling>span{animation-range:cover 9% cover 20%}}}.about-facts>div{overflow-x:clip}.about-facts dd{--fact-sep:.7em;margin-left:calc(-1 * var(--fact-sep));text-wrap:balance}.about-fact{white-space:nowrap}.about-fact:first-child{margin-left:var(--fact-sep);white-space:normal;display:inline-block}.about-fact-sep{width:var(--fact-sep);text-align:center;white-space:pre;display:inline-block}@media (min-width:901px) and (max-height:759px){.about-layout{grid-template-rows:minmax(0,1fr);max-height:calc(100svh - 124px)}.about-photo{height:100%;min-height:0}.about-body{gap:10px;padding:24px 40px 24px 0}.about-body h2{font-size:32px}.about-body>.about-lead{font-size:18px}.about-body>p{font-size:15px;line-height:1.55}.about-facts{gap:10px 24px;margin-top:8px}}@media screen and (min-width:641px) and (max-width:900px){.about-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.about-photo{aspect-ratio:auto;height:100%;min-height:0}.about-body{padding:28px 28px 28px 0}}.contact-section{align-content:end;row-gap:var(--hero-gap);padding-bottom:var(--hero-end);display:grid;position:relative}@media (min-width:901px) and (min-height:600px){.contact-section{min-height:100svh}.finale>#contact.run-mark{bottom:calc(100svh - var(--scroll-pad));position:absolute}}.contact-copy{z-index:auto}.contact-copy>*{animation:none}.contact-title,.contact-copy>p{z-index:2;position:relative}.contact-title{letter-spacing:-.045em;font-size:clamp(44px,min(4.8vw,9.6svh),70px);font-weight:600;line-height:1}.contact-copy>p{max-width:520px;color:var(--ink-2);margin-top:24px;font-size:18px;line-height:1.5}.contact-title .roll{white-space:nowrap;display:block}.roll-was{display:none}.contact-title[data-roll] .roll{clip-path:inset(.072em -1em -.072em);display:grid}.contact-title[data-roll] .roll>*{transition:transform .6s var(--ease-expo), opacity 0s, visibility .6s;grid-area:1/1}.contact-title[data-roll] .roll-was{display:block}.contact-title[data-roll=was] .roll-was+.roll-now{visibility:hidden;opacity:0;transform:translateY(140%)}.contact-title[data-roll=now] .roll-was{visibility:hidden;opacity:0;transform:translateY(-140%)}.contact-title[data-roll=now] .roll>.roll-was,.contact-title[data-roll=was] .roll-was+.roll-now{transition:transform .42s var(--ease-exit), opacity .15s linear, visibility .42s}.contact-title[data-roll=now] .roll:nth-child(3) .roll-was,.contact-title[data-roll=was] .roll:nth-child(3) .roll-now{transition-delay:90ms}.contact-title[data-roll=now] .roll:nth-child(2) .roll-now,.contact-title[data-roll=was] .roll:nth-child(2) .roll-was{transition-delay:.21s}.contact-title[data-roll=now] .roll:nth-child(3) .roll-now,.contact-title[data-roll=was] .roll:nth-child(3) .roll-was{transition-delay:.27s}.contact-title.is-instant[data-roll] .roll>*{transition:none}.contact-actions{align-items:center;margin-top:30px;display:flex}.contact-actions .btn{z-index:2;isolation:isolate;flex:none;position:relative;overflow:hidden}.last-trace{z-index:0;background:var(--accent);flex:auto;min-width:40px;height:1.5px;margin:0 -60px 0 8px;position:relative}.last-trace:before{content:"";background:var(--accent);border-radius:1px;width:5px;height:5px;margin-top:-2.5px;position:absolute;top:50%;left:-1px}.last-trace:after{content:"";width:var(--jog,34px);background:var(--accent);transform-origin:0;height:1.5px;margin-left:-.75px;position:absolute;top:0;left:100%;transform:rotate(-45deg)}.last-gap{background:var(--accent);transform-origin:100%;width:8px;height:100%;transition:transform var(--t-ui) var(--ease-out);position:absolute;top:0;right:100%;transform:scaleX(0)}.contact-actions:has(.btn:hover,.btn:focus-visible) .last-gap{transform:scaleX(1)}.contact-actions .btn:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(105deg,#fff0 35%,#ffffff80 50%,#fff0 65%);position:absolute;inset:0;transform:translate(-110%)}.contact-actions .btn:is(:hover,:focus-visible):after{transition:transform .7s var(--ease-out) .12s;transform:translate(110%)}.contact-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.contact-links li{min-width:0;position:relative}.contact-links li:has(>.copy-email){justify-self:start;max-width:100%}.contact-links a{background:0 0;border-radius:4px;flex-direction:column;align-items:flex-start;gap:6px;padding:0;transition:none;display:flex;overflow:visible}.contact-links a:hover{background:0 0;transform:none}.contact-label{color:var(--muted);align-items:center;gap:6px;font-size:15px;display:inline-flex}.contact-label svg{color:var(--muted);flex:none}.contact-value{max-width:100%;color:var(--ink);letter-spacing:-.02em;text-underline-offset:5px;transition:text-decoration-color var(--t-hover) ease;font-size:clamp(18px,1.65vw,24px);font-weight:600;line-height:1.2;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.contact-links a:hover .contact-value,.contact-links a:focus-visible .contact-value{-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.copy-email{z-index:1;background:var(--raised);height:24px;box-shadow:var(--raised-edge);color:var(--muted);font:inherit;cursor:pointer;transition:color var(--t-hover) ease, background var(--t-hover) ease;border:0;border-radius:6px;padding:0 9px;font-size:13px;font-weight:500;line-height:24px;position:absolute;top:-.75px;right:0}.copy-email:after{content:"";position:absolute;inset:-12px -8px -8px}.copy-email:hover,.copy-email[data-copied]{background:var(--raised-hover);color:var(--ink)}html:not(.js) .copy-email{display:none}@media (max-width:999px){.contact-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:901px) and (max-height:700px){.contact-copy>p{margin-top:16px;font-size:17px}.contact-actions{margin-top:22px}}@media (max-width:900px){.contact-title{font-size:var(--type-scene)}.last-trace{flex:0 72px;margin-right:0}.last-trace:after{width:var(--jog,0px);transition:opacity .4s var(--ease-out) .5s;transform:rotate(45deg)}.contact-grid:has(.stage-finale[data-enter]:not(.is-in)) .last-trace:after{opacity:0;transition:none}}@media (max-width:640px){.contact-section{padding-bottom:48px}.contact-copy>p{font-size:17px}.contact-links{grid-template-columns:minmax(0,1fr);gap:20px}}.stage-finale .el-ribbon{--delay:50ms}.stage-finale .el-laptop{--delay:.2s}.stage-finale .el-phone{--delay:.4s}.stage-finale .el-chip-code{--delay:.62s}.stage-finale .el-chip-cloud{--delay:.74s}.stage-finale .el-chip-spark{--delay:.86s}@media screen and (prefers-reduced-motion:no-preference){.stage-finale[data-enter]:not(.is-in) .el{opacity:0;animation:none}}@media (prefers-reduced-motion:reduce){.last-gap,.copy-email,.contact-value{transition:none}.contact-actions .btn:after{display:none}}.scene-rail.is-live~.finale-about .about-body,.scene-rail.is-live~.finale-contact :is(.contact-title,.contact-copy>p,.contact-actions,.contact-links>li){transition:opacity .36s var(--ease-out), transform .52s var(--ease-out)}.scene-rail.is-live~.finale-about .about-section{transition:opacity .36s var(--ease-out)}.scene-rail.is-live~.finale-about .about-body[data-gone] h2{opacity:0;transition:opacity 0s linear .36s}.scene-rail.is-live~.finale-contact .contact-links>li:nth-child(2){transition-delay:60ms}.scene-rail.is-live~.finale-contact .contact-links>li:nth-child(3){transition-delay:.12s}.scene-rail.is-live~.finale-contact .contact-links>li:nth-child(4){transition-delay:.18s}.scene-rail.is-live~.finale-about[data-instant] :is(.about-body,.about-body h2,.about-section,.about-screen),.scene-rail.is-live~.finale-contact[data-instant] :is(.contact-title,.contact-copy>p,.contact-actions,.contact-links>li){transition:none}
.site-header{--chapter-bg:var(--bg);transition:background-color .3s,box-shadow .3s}html[data-chapter=work] .site-header{--chapter-bg:var(--bg-device)}.site-header.is-scrolled,.site-header.is-open{background-color:var(--chapter-bg);box-shadow:0 1px 0 var(--line)}html[data-header=clear] .site-header:not(.is-open){box-shadow:none;background-color:#0000}html[data-chapter=contact]:has(.scene[data-scene=pullback].is-live) .site-header:not(.is-open){box-shadow:none;background-color:#0000}html[data-header=scrim] .site-header:not(.is-open){background-color:color-mix(in srgb, var(--bg) 84%, transparent);box-shadow:none}.site-header:after{content:"";background:linear-gradient(color-mix(in srgb, var(--bg) 84%, transparent), color-mix(in srgb, var(--bg) 71%, transparent) 25%, color-mix(in srgb, var(--bg) 42%, transparent) 50%, color-mix(in srgb, var(--bg) 13%, transparent) 75%, transparent);opacity:0;pointer-events:none;height:24px;transition:opacity .3s;position:absolute;inset:100% 0 auto}html[data-header=scrim] .site-header:not(.is-open):after{opacity:1}html:not(.js) .site-header{background-color:var(--bg);box-shadow:0 1px 0 var(--line)}.site-nav a[aria-current=location]{color:var(--ink)}@media (forced-colors:active){.site-nav a[aria-current=location]{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}}.logo-name,.header-side .btn-sm{white-space:nowrap}@media (max-width:359px){.logo-divider,.logo-name{display:none}}@media (max-width:900px){.header-inner{position:static}.site-header.is-open .site-nav{padding-inline:calc((100% - var(--shell)) / 2 + 24px);overscroll-behavior:contain;background:var(--chapter-bg);max-height:calc(100dvh - 100%);overflow-y:auto}html:not(.js) .header-inner{flex-wrap:wrap;height:auto;padding-top:10px}html:not(.js) .site-nav{scrollbar-width:none;flex:0 0 100%;order:3;gap:22px;padding:4px 0 10px;display:flex;position:static;overflow-x:auto;transform:none}html:not(.js) .site-nav a{flex:none}html:not(.js) .menu-button{display:none}}@media (max-width:420px){html:not(.js) .site-nav{gap:12px}html:not(.js) .site-nav a{font-size:13px}}@media (max-width:900px) and (max-height:500px){.site-header.is-open .site-nav a{padding:10px 0;font-size:17px}}@media (pointer:coarse){.site-header .logo,.xp-company a,.chips-more summary{position:relative}.site-header .logo:after,.xp-company a:after,.chips-more summary:after{content:"";position:absolute;inset:-10px -6px}.chips-more summary:after{inset:-3px 0}}@media (prefers-reduced-motion:no-preference){.menu-button,.chips-more summary{transition:transform var(--t-press) var(--ease-out), background var(--t-hover) ease, color var(--t-hover) ease}.btn:active,.menu-button:active,.chips-more summary:active{transition-duration:var(--t-press);transform:scale(.97)}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){a:hover path[d="M7 17 17 7M8 7h9v9"],a:focus-visible path[d="M7 17 17 7M8 7h9v9"]{animation:.3s both arrow-through}:is(.btn:hover svg:has(>path[d="M7 17 17 7M8 7h9v9"]),.link-arrow:hover svg:has(>path[d="M7 17 17 7M8 7h9v9"])){translate:none}}@keyframes arrow-through{0%{animation-timing-function:cubic-bezier(.55,.055,.675,.19);transform:none}45%{transform:translate(18px,-18px)}45.01%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translate(-18px,18px)}to{transform:none}}:where([data-circuit]){position:relative}:where([data-circuit]:not(.hero)){isolation:isolate}.circuit{z-index:-1;pointer-events:none;fill:#bec4ce38;stroke:#bec4ce21;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.circuit mask circle{stroke:none}.circuit .circuit-line{fill:none}.circuit .circuit-lit{fill:var(--accent);stroke:var(--accent);stroke-width:1.25px;opacity:0;transition:opacity .32s}.circuit.is-lit .circuit-lit{opacity:.85}@media screen and (prefers-reduced-motion:no-preference){.circuit[data-draw] .circuit-run .circuit-line{stroke-dasharray:var(--len) var(--len)}.circuit[data-draw] .circuit-run:not(.is-drawn) .circuit-line{stroke-dashoffset:var(--len)}.circuit[data-draw] .circuit-run:not(.is-drawn) .circuit-pad{opacity:0}.circuit[data-draw] .circuit-run.is-drawn:not([data-instant]) .circuit-line{transition:stroke-dashoffset var(--dur) cubic-bezier(.45, 0, .2, 1) calc(var(--at) + var(--wait,0s))}.circuit[data-draw] .circuit-run.is-drawn:not([data-instant]) .circuit-pad{transition:opacity .26s ease calc(var(--pad-at) + var(--wait,0s))}}.circuit .circuit-pulse{fill:none;stroke:var(--accent);stroke-width:1.75px}.hero>.circuit{opacity:clamp(0, (var(--key,1) - .43) / .57, 1)}.intro-mask{margin-block:-.14em;padding-block:.14em;display:block;overflow:clip}.intro-line{display:block}@media screen and (prefers-reduced-motion:no-preference){html.quiet .intro:not(.is-in) .intro-line{opacity:0;transform:translateY(calc(100% + .16em))}html.quiet .intro:not(.is-in) .intro-row>p{opacity:0;transform:translateY(12px)}html.quiet .intro.is-in .intro-line{transition:transform .9s var(--ease-expo), opacity .16s linear}html.quiet .intro.is-in .intro-row>p{transition:opacity .7s var(--ease-out) .12s, transform .9s var(--ease-expo) .12s}}.xp-timeline{position:relative}.xp-rail{pointer-events:none;width:1px;display:none;position:absolute;top:30px;bottom:40px;left:11px;container-type:size}.xp-rail-fill{background:var(--ink-2);transform-origin:50% 0;position:absolute;inset:0}.xp-rail-head{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:-2.5px}@supports (animation-timeline:view()){@media screen and (prefers-reduced-motion:no-preference) and (min-width:641px){.xp-timeline{view-timeline:--xp block;view-timeline-inset:0px}.xp-rail{display:block}.xp-rail-fill{animation:linear both xp-fill}.xp-rail-head{animation:linear both xp-head}.xp-rail-fill,.xp-rail-head{animation-timeline:--xp;animation-range:cover calc(50vh + 30px) cover calc(100% - 50vh - 40px)}.xp-dot{animation:linear both xp-dot-lit;animation-timeline:view();animation-range:cover calc(50vh + 6px) cover calc(50vh + 18px)}.xp-dot.is-current{animation-name:xp-dot-halo}}}@keyframes xp-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes xp-head{0%{translate:0}to{translate:0 100cqh}}@keyframes xp-dot-lit{0%{border-color:var(--muted);box-shadow:inset 0 0 0 3px var(--bg), inset 0 0 0 3px var(--ink)}to{border-color:var(--ink);box-shadow:inset 0 0 0 3px var(--bg), inset 0 0 0 10px var(--ink)}}@keyframes xp-dot-halo{0%{box-shadow:0 0 0 0 var(--accent-soft)}to{box-shadow:0 0 0 4px var(--accent-soft)}}.xp-points svg path{stroke-dasharray:24}@media screen and (prefers-reduced-motion:no-preference){html.quiet .xp-points>li:not(.is-in) svg path{stroke-dashoffset:-24px}html.quiet .xp-points>li.is-in svg path{transition:stroke-dashoffset .42s var(--ease-out)}}.card.is-logo-lit .chip .chip-logo{filter:var(--logo-lit)}.chip-logo:is([data-logo=Laravel],[data-logo=PostgreSQL],[data-logo=MySQL]){--logo-rest:grayscale(1) brightness(2.2) contrast(.9)}.edu-cert{perspective:700px}.edu-cert .edu-cert-paper{border-radius:var(--radius-sm);transform:translateY(var(--lift,0px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .3s var(--ease-out);position:relative;overflow:clip}.edu-cert:hover .edu-cert-paper,.edu-cert:focus-visible .edu-cert-paper{--lift:-3px;transform:translateY(var(--lift)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}.edu-cert-paper img{transform-origin:50% 100%}.edu-cert-paper:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:linear-gradient(118deg,#fff0 36%,#ffffff29 50%,#fff0 64%);transition:opacity .32s;position:absolute;inset:0}.edu-cert:hover .edu-cert-paper:after,.edu-cert:focus-visible .edu-cert-paper:after{opacity:1}@media screen and (prefers-reduced-motion:no-preference){html.quiet .edu-cert-paper:not(.is-in) img{transform:translateY(104%)rotate(-3deg)}html.quiet .edu-cert-paper.is-in img{transition:transform .9s var(--ease-expo) calc(var(--i,0) * .12s), filter .32s ease}}.gpa{display:inline-flex}.digits{font-variant-numeric:tabular-nums;line-height:1;display:inline-flex}.digit-col{height:1em;display:block;overflow:clip}.digit-strip{transform:translateY(calc(var(--d) * -1em));flex-direction:column;display:flex}.digit-strip>span{height:1em;line-height:1;display:block}@media screen and (prefers-reduced-motion:no-preference){html.quiet .gpa:not(.is-in) .digit-strip{transform:none}html.quiet .gpa.is-in .digit-strip{transition:transform 1.1s var(--ease-expo) calc(var(--i,0) * 70ms)}}.skills-grid .chip-logo{filter:var(--logo-lit)}.skills-grid .chip{--light-delay:var(--d,0s)}@media (max-width:900px){.skills-grid .chip{--light-delay:calc(var(--i,0) * 40ms)}}@media screen and (prefers-reduced-motion:no-preference){html.quiet .skill-group:not(.is-lit) .chip-logo{filter:var(--logo-rest)}html.quiet .skill-group.is-lit .chip-logo{transition:filter .42s ease var(--light-delay)}}@media screen and (prefers-reduced-motion:no-preference) and (min-width:901px){html.quiet .skills-grid:not(.is-lit)+.skills-note{opacity:0}html.quiet .skills-grid.is-lit+.skills-note{transition:opacity .6s var(--ease-out) .12s}}.skills-note{min-height:24px;color:var(--ink-2);align-items:center;gap:10px;margin-top:22px;font-size:15px;line-height:1.5;display:flex}.skills-note .pin{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.about-photo{transform-origin:50% 100%}@media screen and (prefers-reduced-motion:no-preference){html.quiet .about-photo:not(.is-in){clip-path:inset(100% 0 0);transform:scale(1.06)}html.quiet .about-photo.is-in{clip-path:inset(0);transition:clip-path .9s var(--ease-out), transform 1.2s var(--ease-soft)}html.quiet .about-facts:not(.is-in)>*{opacity:0;transform:translateY(12px)}html.quiet .about-facts.is-in>*{transition:opacity .6s var(--ease-out) calc(var(--row,0) * 90ms), transform .8s var(--ease-expo) calc(var(--row,0) * 90ms)}}.about-facts>:nth-child(n+3){--row:1}@media (max-width:640px){.about-facts>:nth-child(2){--row:1}.about-facts>:nth-child(3){--row:2}.about-facts>:nth-child(4){--row:3}}@supports (animation-timeline:view()){@media screen and (prefers-reduced-motion:no-preference){.about-lead.is-filling>span{color:color-mix(in oklab, var(--ink) 58%, transparent);animation:linear both ink-fill;animation-timeline:view();animation-range:cover 20% cover 45%;display:inline-block}}}@keyframes ink-fill{to{color:var(--ink)}}@media print{@page{size:A4;margin:14mm 12mm}:root{--bg:#fff;--bg-device:#fff;--surface:#fff;--surface-2:#f2f2f0;--well:#ececea;--ink:#16181b;--ink-2:#34373c;--muted:#565a60;--line:#00000024;--line-strong:#00000047;--plate:none;--edge:none;--raised:#f2f2f0;--raised-edge:none;--raised-hover:#f2f2f0;--section-gap:36px;--hero-gap:28px}html,body{color:var(--ink)!important;background:#fff!important}*,:before,:after{opacity:1!important;clip-path:none!important;visibility:visible!important;transition:none!important;animation:none!important;transform:translate(0,0)scale(1)rotate(0)!important}.through,.finale{height:auto!important;display:block!important}.through>*,.finale>*{grid-area:auto!important}.hero,.through-work,.work-section,.finale-about,.finale-contact,.scene-tall,.scene-stage,[data-circuit]{height:auto!important;min-height:0!important;position:relative!important;top:auto!important}.hero{padding-top:0}.skip-link,.site-header,.curtain,.curtain-i,.wipe,#lvh-probe,.scene-rail,.through-tail,.through-line,.circuit,.chin,.demo,dialog,.el-shell,.el-screen-launch,.el-screen-home,.icu-sheet,.icu-line,.about-screen,.roll-was,.copy-email,.ribbon-sheen,.hero:before,.card:before,.edu-cert-paper:after,.xp-rail,.xp-list:before,.xp-dot,.work-filters,.work-nav,.chips-more>summary,main button{display:none!important}.slides{display:block!important;overflow:visible!important}.slide{break-inside:avoid;margin-bottom:28px}.slide-main{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;align-items:start!important;gap:28px!important;min-height:0!important}.slide-media{padding:0!important}.slide-details[hidden]{display:grid!important}.xp-item{padding-left:0}.intro-shell,.section-head{break-after:avoid}.about-layout{grid-template-columns:minmax(0,.42fr) minmax(0,1fr)!important}.about-photo{aspect-ratio:3/4;height:auto!important;min-height:0!important}.about-body{padding:24px 24px 24px 0!important}p,li{orphans:3;widows:3}details::details-content{content-visibility:visible!important}.card{border:1px solid var(--line-strong);box-shadow:none!important;background:#fff!important}.xp-item,.edu-card,.skill-group,.mini-card,.work-list-row,.about-layout{break-inside:avoid}h2,h3{break-after:avoid}.chip,.edu-badges li,.logo-tile,.xp-current,.btn,.mini-arrow,.mini-tools li{border:1px solid var(--line);box-shadow:none!important}.chip-logo,.logo-tile img,.stack-icons svg,.mini-tools svg,.mini-tools img,.edu-cert-paper img,.mini-render,.dv-phone img,.icu-app{filter:none!important}img[src$=-light\.svg]{filter:brightness(0)!important}.gpa .digits{display:none!important}.gpa .sr-only{clip:auto;white-space:normal;width:auto;height:auto;margin:0;position:static;overflow:visible}.dv-phone-notch,.dv-laptop-base:after{transform:translate(-50%)!important}}
