.portfolio-home{--bg:#fff;--accent:#2763cc;--hero-gutter:34px;--contour-line:#0909ed4d;--ink:#0a0a0a;--muted:#0a0a0a80;--line:#0a0a0a24;--ease:cubic-bezier(.19, 1, .22, 1)}.portfolio-home *{box-sizing:border-box;margin:0;padding:0}.portfolio-home{font-family:var(--portfolio-font-family);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}.portfolio-home a{color:inherit;text-decoration:none}.portfolio-home.lenis,.portfolio-home.lenis .portfolio-home{height:auto}.portfolio-home .lenis.lenis-smooth{scroll-behavior:auto!important}@media (hover:hover){.portfolio-home{cursor:none}.portfolio-home nav{cursor:default}.portfolio-home nav a{cursor:pointer}}.portfolio-home .cursor{pointer-events:none;z-index:200;mix-blend-mode:difference;width:30px;height:30px;transition:width .3s var(--ease), height .3s var(--ease), opacity .3s;opacity:0;border:1.5px solid #fff;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.portfolio-home .cursor.on{opacity:1}.portfolio-home .cursor.big{width:52px;height:52px}@media (hover:none){.portfolio-home .cursor{display:none}}.portfolio-home nav{z-index:60;padding:26px var(--hero-gutter);opacity:0;transition:opacity .7s var(--ease), padding .5s var(--ease);justify-content:center;display:flex;position:fixed;top:0;left:0;right:0}.portfolio-home.revealed nav{opacity:1}.portfolio-home nav.scrolled{padding:14px 20px}.portfolio-home .nav-in{transition:flex-grow .55s var(--ease), gap .5s var(--ease), padding .5s var(--ease), background .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);border:1px solid #0000;border-radius:100px;flex:auto;justify-content:space-between;align-items:center;gap:0;padding:0;display:flex;box-shadow:0 0 #0a0a0a00}.portfolio-home nav.scrolled .nav-in{-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);background:#ffffffb8;border-color:#0a0a0a12;flex-grow:0;gap:64px;padding:8px 12px 8px 42px;box-shadow:0 5px 18px #0a0a0a0d}.portfolio-home .nav-mid{align-items:center;display:flex}.portfolio-home .brand{letter-spacing:-.01em;font-size:18px;font-weight:700}.portfolio-home .brand-wordmark{--wordmark-ink:#000}.portfolio-home .brand-wordmark path:nth-child(-n+7){fill:var(--accent)}.portfolio-home.is-dark .brand-wordmark,.portfolio-home .sheet-brand .brand-wordmark{--wordmark-ink:#fff}.portfolio-home.is-dark .brand-wordmark path,.portfolio-home .sheet-brand .brand-wordmark path{fill:#fff}.portfolio-home .nav-r{gap:24px;font-size:13px;font-weight:500;display:flex}.portfolio-home .nav-r a{opacity:.72;transition:opacity .3s;position:relative}.portfolio-home .nav-r a:hover{opacity:1}.portfolio-home .nav-r a:after{content:"";opacity:.5;transform-origin:0;background:currentColor;height:2px;transition:transform .7s cubic-bezier(.76,0,.24,1);position:absolute;bottom:-10px;left:0;right:0;transform:scaleX(0)}.portfolio-home .nav-r a:hover:after{transform:scaleX(1)}.portfolio-home .nav-cta{z-index:0;white-space:nowrap;opacity:1;background:var(--accent);color:#fff;max-width:160px;transition:max-width .8s var(--ease), opacity .55s var(--ease), margin-left .8s var(--ease), padding .7s var(--ease), background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);border:1px solid #0000;border-radius:100px;align-items:center;margin-left:22px;padding:9px 20px;font-size:13.5px;font-weight:600;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 #0a0a0a00}.portfolio-home nav.scrolled .nav-cta{opacity:1;max-width:160px;margin-left:22px;padding:9px 20px}.portfolio-home .nav-cta:hover{color:#0a0a0a;background:#fff;border-color:#0a0a0a;box-shadow:0 4px 14px #0a0a0a1f}.portfolio-home.is-dark .nav-cta:hover{color:#fff;background:#0a0a0a;border-color:#ffffffd9;box-shadow:0 4px 14px #00000059}.portfolio-home .hero{min-height:100vh;padding:0;position:relative;overflow:hidden}.portfolio-home .hero-contours{z-index:0;pointer-events:none;color:var(--contour-line);position:absolute;inset:0}.portfolio-home .hero-contours canvas,.portfolio-home .hero-contours-fallback{width:100%;height:100%;display:block;position:absolute;inset:0}.portfolio-home .hero-contours canvas{contain:strict}.portfolio-home .hero-contours[data-rendered=true] .hero-contours-fallback{display:none}.portfolio-home .portrait-wrap{z-index:1;opacity:0;transition:opacity 1.3s var(--ease);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 75%,#0000 90%);mask-image:linear-gradient(#000 75%,#0000 90%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.portfolio-home.revealed .portrait-wrap{opacity:1}.portfolio-home .portrait{object-fit:contain;object-position:56% bottom;filter:grayscale()contrast(1.02);width:100%;height:100%;display:block}.portfolio-home .hero-copy{bottom:clamp(28px,4.8vw,82px);left:calc(var(--hero-gutter) + 1px);right:var(--hero-gutter);z-index:5;text-align:left;flex-direction:column;align-items:flex-start;gap:24px;display:flex;position:absolute}.portfolio-home .hero-meta{max-width:100%;color:var(--accent);opacity:0;transition:opacity .8s var(--ease) .3s;margin:0;font-size:clamp(15px,1.2vw,20px);font-weight:700;line-height:1.4;display:flex}.portfolio-home.revealed .hero-meta{opacity:1}.portfolio-home .hero-meta .avail{align-items:center;gap:8px;display:flex}.portfolio-home .dot{background:#1c9e57;border-radius:50%;width:7px;height:7px;display:inline-block}.portfolio-home .cycler{font-family:var(--portfolio-font-family);color:#000;text-transform:uppercase;font-weight:800;font-size:var(--portfolio-display-size);line-height:var(--portfolio-display-leading);letter-spacing:var(--portfolio-display-tracking);position:relative}.portfolio-home .cy-mask{margin-bottom:-.1em;padding-bottom:.16em;display:block;overflow:hidden}.portfolio-home .cy-l{white-space:nowrap;transform-origin:0;display:block}.portfolio-home .about{color:#fff;--ink:#fff;--muted:#ffffffa6;--line:#ffffff40;background:#2763cc;position:relative}.portfolio-home .experience-stats{margin-top:4rem}.portfolio-home .experience-stats>.grid{padding-top:2.5rem;padding-bottom:2.5rem}@media (min-width:821px){.portfolio-home .experience-stats{margin-top:6rem}.portfolio-home .experience-stats>.grid{padding-top:3.5rem;padding-bottom:3.5rem}}.portfolio-home .ab-top{align-items:start;max-width:500px}.portfolio-home .ab-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:26px;font-size:13px;display:block}.portfolio-home .ab-statement{letter-spacing:-.025em;font-size:clamp(30px,3.7vw,56px);font-weight:700;line-height:1.14}.portfolio-home .ab-statement .ln{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);display:block;transform:translateY(22px)}.portfolio-home .ab-statement .ln i{font-style:normal}.portfolio-home .ab-statement .ln.mut{color:var(--muted)}.portfolio-home .ab-statement.in .ln{opacity:1;transform:none}.portfolio-home .ab-statement.in .ln:nth-child(2){transition-delay:.14s}.portfolio-home .ab-quote{align-self:center;max-width:760px;margin-left:0}.portfolio-home .ab-quote p{font-size:clamp(16px,1.3vw,19px);font-weight:500;line-height:1.5}.portfolio-home .ab-quote .mut{color:var(--muted)}.portfolio-home .ab-person{align-items:center;gap:12px;margin-top:22px;display:flex}.portfolio-home .ab-av{object-fit:cover;object-position:50% 50%;filter:grayscale();background:#eee;border-radius:50%;width:42px;height:42px}.portfolio-home .ab-person b{font-size:15px;font-weight:600;display:block}.portfolio-home .ab-person span{color:var(--muted);font-size:13px}.portfolio-home .ab-metrics{grid-template-columns:1fr;margin-top:130px;display:grid}.portfolio-home .ab-metrics .metric{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);padding:34px 0 0;transform:translateY(22px)}.portfolio-home .ab-metrics .metric:first-child{padding-left:0}.portfolio-home .ab-metrics .metric:last-child{padding-bottom:0}.portfolio-home .ab-metrics.in .metric{opacity:1;transform:none}.portfolio-home .ab-metrics.in .metric:nth-child(2){transition-delay:.14s}.portfolio-home .ab-metrics.in .metric:nth-child(3){transition-delay:.28s}.portfolio-home .metric+.metric{border-top:1px solid var(--line)}.portfolio-home .metric .num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(44px,5.6vw,82px);font-weight:700;line-height:1}.portfolio-home .metric .mlabel{color:var(--muted);margin-top:12px;font-size:13px}.portfolio-home .reveal2{opacity:0;transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);transform:translateY(24px)}.portfolio-home .reveal2.in{opacity:1;transform:none}.portfolio-home .fw{transition:color .45s var(--ease);padding:130px 200px 100px}.portfolio-home.is-dark .fw{--ink:#fff;--muted:#ffffff9e;--line:#ffffff29;color:var(--ink)}.portfolio-home .fw-head{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.portfolio-home .fw-list{flex-direction:column;margin-top:26px;display:flex}.portfolio-home .fw-item{max-width:100%;color:var(--ink);padding:60px 0;text-decoration:none;display:block;position:relative}.portfolio-home .fw-item:first-child{padding-top:0}.portfolio-home .fw-item+.fw-item{border-top:1px solid var(--line)}.portfolio-home .fw-top{color:var(--muted);align-items:center;gap:16px;margin-bottom:16px;font-size:13px;display:flex}.portfolio-home .fw-top .idx{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.portfolio-home .fw-title{letter-spacing:-.035em;transform-origin:0;transition:transform .55s var(--ease), color .4s var(--ease);font-size:clamp(28px,5vw,76px);font-weight:800;line-height:.98;display:inline-block}.portfolio-home .fw-item:hover .fw-title{color:var(--hc);transform:scale(1.12)}.portfolio-home .fw-item.nda{cursor:default}.portfolio-home .fw-item.nda:hover .fw-title{color:var(--hc);transform:scale(1.12)}.portfolio-home .fw-nda{border:1px solid var(--line);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:40px;align-items:center;gap:6px;padding:4px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.portfolio-home .fw-nda:before{content:"";width:9px;height:11px;-webkit-mask:var(--lock) center/contain no-repeat;-webkit-mask:var(--lock) center/contain no-repeat;mask:var(--lock) center/contain no-repeat;background:currentColor;flex:none}.portfolio-home .fw-item.nda .fw-title:after{content:"Available on request";letter-spacing:0;color:var(--muted);opacity:0;transition:opacity .45s var(--ease), transform .45s var(--ease);margin-top:14px;font-size:13px;font-weight:500;display:block;transform:translateY(6px)}.portfolio-home .fw-item.nda:hover .fw-title:after{opacity:1;transform:none}.portfolio-home .fw-title .ln{margin-bottom:-.09em;padding-bottom:.14em;display:block;overflow:hidden}.portfolio-home .fw-title .ln i{transition:transform 1.1s var(--ease);font-style:normal;display:block;transform:translateY(118%)}.portfolio-home .fw-item.in .fw-title .ln i{transform:none}.portfolio-home .fw-media{aspect-ratio:16/9;opacity:0;width:100%;transition:opacity 1.1s var(--ease);background:#eee;border-radius:18px;margin-top:34px;position:relative;overflow:hidden}.portfolio-home .fw-item.in .fw-media{opacity:1;transition-delay:.15s}.portfolio-home .fw-media .poster{transition:transform 1.2s var(--ease);position:absolute;inset:0}.portfolio-home .fw-media .poster svg{width:100%;height:100%;display:block}.portfolio-home .fw-item:hover .fw-media .poster{transform:scale(1.05)}.portfolio-home .fw-tags{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.portfolio-home .fw-item.right .fw-tags{justify-content:flex-end}.portfolio-home .fw-tags span{border:1px solid var(--line);color:var(--muted);border-radius:40px;padding:8px 16px;font-size:13px;font-weight:500}.portfolio-home .fw-top,.portfolio-home .fw-tags{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transform:translateY(20px)}.portfolio-home .fw-item.in .fw-top{opacity:1;transition-delay:50ms;transform:none}.portfolio-home .fw-item.in .fw-tags{opacity:1;transition-delay:.3s;transform:none}@media (max-width:820px){.portfolio-home .fw{padding:70px 22px 90px}.portfolio-home .fw-list{gap:0}.portfolio-home .fw-item{text-align:left!important;max-width:100%!important;margin-left:0!important}.portfolio-home .fw-item.right .fw-top,.portfolio-home .fw-item.right .fw-tags{justify-content:flex-start}.portfolio-home .fw-media{width:100%!important;margin-left:0!important}}@media (max-width:1200px){.portfolio-home .fw{padding-left:64px;padding-right:64px}}@media (max-width:820px){.portfolio-home .ab-top{grid-template-columns:1fr;gap:34px}.portfolio-home .ab-quote{max-width:100%;margin-left:0}.portfolio-home .ab-metrics{grid-template-columns:1fr}.portfolio-home .metric{border-top:1px solid var(--line);padding:34px 0 0;border-left:none!important}.portfolio-home .metric .dots{margin-bottom:24px}.portfolio-home .hero{flex-direction:column;justify-content:flex-end;padding:120px 22px 30px;display:flex}.portfolio-home nav{padding:22px}.portfolio-home .portrait-wrap{height:auto;top:10%;bottom:auto;-webkit-mask-image:none;mask-image:none}.portfolio-home .portrait{object-fit:fill;width:100%;height:auto;-webkit-mask-image:linear-gradient(#000 55%,#0000 100%);mask-image:linear-gradient(#000 55%,#0000 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.portfolio-home .hero-meta{flex-direction:column;align-items:flex-start;gap:8px;width:auto;position:relative;top:auto;right:auto}.portfolio-home .nav-r,.portfolio-home .nav-cta{display:none}}.portfolio-home .burger{z-index:2;cursor:pointer;width:44px;height:44px;color:inherit;background:0 0;border:0;justify-content:center;align-items:center;margin:-11px -11px -11px 0;display:none;position:relative}.portfolio-home .burger i{width:20px;height:2px;transition:transform .45s var(--ease), opacity .25s var(--ease);background:currentColor;border-radius:2px;position:absolute;left:12px}.portfolio-home .burger i:first-child{transform:translateY(-5px)}.portfolio-home .burger i:nth-child(3){transform:translateY(5px)}.portfolio-home .sheet-veil{display:none}.portfolio-home nav.sheet{z-index:500;color:#fff;opacity:1;padding:22px 22px calc(26px + env(safe-area-inset-bottom));visibility:hidden;pointer-events:none;transition:transform .6s var(--ease), visibility 0s linear .6s;background:#0a0a0a;flex-direction:column;justify-content:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet{visibility:visible;pointer-events:auto;transition:transform .6s var(--ease), visibility 0s;transform:none}.portfolio-home .sheet-top{flex:none;justify-content:space-between;align-items:center;height:44px;display:flex}.portfolio-home .sheet-brand{letter-spacing:-.01em;color:#fff;font-size:16px;font-weight:700}.portfolio-home .sheet-x{cursor:pointer;color:#fff;background:0 0;border:0;width:44px;height:44px;margin-right:-11px;position:relative}.portfolio-home .sheet-x i{background:currentColor;border-radius:2px;width:20px;height:2px;position:absolute;top:21px;left:12px}.portfolio-home .sheet-x i:first-child{transform:rotate(45deg)}.portfolio-home .sheet-x i:nth-child(2){transform:rotate(-45deg)}.portfolio-home .sheet-links{flex-direction:column;flex:1;justify-content:center;display:flex}.portfolio-home .sheet-links a{color:#fff;letter-spacing:-.03em;opacity:0;transition:opacity .55s var(--ease), transform .55s var(--ease);border-bottom:1px solid #ffffff14;padding:22px 0;font-size:clamp(30px,9vw,46px);font-weight:700;line-height:1.06;display:block;transform:translateY(20px)}.portfolio-home .sheet-links a:last-child{border-bottom:0}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a{opacity:1;transform:none}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a:first-child{transition-delay:.14s}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a:nth-child(2){transition-delay:.2s}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a:nth-child(3){transition-delay:.26s}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a:nth-child(4){transition-delay:.29s}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-links a:nth-child(5){transition-delay:.34s}.portfolio-home .sheet-foot{opacity:0;transition:opacity .5s var(--ease) .36s;border-top:1px solid #ffffff24;flex:none;padding-top:20px}.portfolio-home:has(.portfolio-navigation.menu-open) nav.sheet .sheet-foot{opacity:1}.portfolio-home .sheet-cta{color:#0a0a0a;background:#fff;border-radius:100px;justify-content:center;align-items:center;padding:16px;font-size:15.5px;font-weight:600;display:flex}.portfolio-home .sheet-mail{text-align:center;color:#ffffff80;margin-top:14px;font-size:12.5px;display:block}.portfolio-home:has(.portfolio-navigation.menu-open) nav:not(.sheet){opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}@media (max-width:820px){.portfolio-home .burger{display:flex}.portfolio-home .nav-r,.portfolio-home .nav-cta{display:none}.portfolio-home nav{justify-content:stretch}.portfolio-home .nav-in,.portfolio-home nav.scrolled .nav-in{flex-grow:1;justify-content:space-between;gap:0}.portfolio-home nav.scrolled .nav-in{padding:9px 16px}}@media (min-width:821px){.portfolio-home nav.sheet{display:none}}.portfolio-home .skills{color:#fff;--m:#ffffff8c;background:0 0;padding:120px 200px 150px;position:relative}.portfolio-home.is-dark nav{color:#fff}.site-header.is-dark nav.scrolled .nav-in{background:#14141480;border-color:#ffffff1f;box-shadow:0 5px 18px #00000047}.portfolio-home.is-dark .brand{color:#fff}.portfolio-home.is-dark nav.scrolled .nav-in{background:#14141480;border-color:#ffffff1f;box-shadow:0 5px 18px #00000047}.portfolio-home.is-dark .nav-cta{background:var(--accent);color:#fff}.portfolio-home .sk-head{grid-template-columns:1.1fr .9fr 1.2fr .8fr;display:grid}.portfolio-home .sk-col{padding:0 34px 40px 0}.portfolio-home .sk-col:first-child{padding-left:0}.portfolio-home .sk-title{letter-spacing:-.035em;margin-bottom:44px;font-size:clamp(40px,6vw,88px);font-weight:800;line-height:1}.portfolio-home .sk-meta{color:#fffc;font-size:13px;line-height:1.6}.portfolio-home .sk-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:60px;display:grid}.portfolio-home .sk-box{aspect-ratio:1.42;opacity:0;transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s), background .28s ease 0s, border-color .28s ease 0s;border:1px solid #ffffff24;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:18px;display:flex;transform:translateY(20px)}.portfolio-home .sk-box.in{opacity:1;transform:none}.portfolio-home .sk-box svg{fill:none;stroke:#fff;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.9;width:clamp(40px,3.8vw,56px);height:clamp(40px,3.8vw,56px);transition:stroke .22s,opacity .22s}.portfolio-home .sk-box span{color:#ffffffbf;text-align:center;font-size:15px;font-weight:500;line-height:1.35;transition:color .22s}.portfolio-home .sk-box:hover{background:#fff;border-color:#fff}.portfolio-home .sk-box:hover svg{stroke:#0a0a0a;opacity:1;animation:shake .62s var(--ease)}.portfolio-home .sk-box:hover span{color:#0a0a0a}@keyframes shake{0%,to{transform:rotate(0)translate(0)}18%{transform:rotate(-9deg)translate(-2px)}36%{transform:rotate(8deg)translate(2px)}54%{transform:rotate(-6deg)translate(-1px)}72%{transform:rotate(4deg)translate(1px)}}.portfolio-home .cv{color:#fff;height:270vh;padding:0 40px;position:relative}.portfolio-home .cv-sticky{justify-content:center;align-items:center;height:100vh;display:flex;position:sticky;top:0}.portfolio-home .cv-inner{grid-template-columns:auto 1fr;align-items:center;gap:56px;width:100%;max-width:1180px;display:grid}.portfolio-home .cv-label{color:#ffffffbf;margin-bottom:12px;font-size:13px;display:block}.portfolio-home .cv-word{letter-spacing:-.04em;min-width:4.4ch;height:1.05em;font-size:clamp(48px,6.6vw,110px);font-weight:800;line-height:1;position:relative}.portfolio-home .cv-word .w{white-space:nowrap;color:#ffffff6b;opacity:0;transition:opacity .45s var(--ease), transform .55s var(--ease);position:absolute;top:0;left:0;transform:translateY(14px)}.portfolio-home .cv-word .w.on{opacity:1;transform:none}.portfolio-home .cv-window{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 14.3% 85.7%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 14.3% 85.7%,#0000 100%)}.portfolio-home .cv-line{letter-spacing:-.025em;color:#fff3;white-space:nowrap;transition:color .45s var(--ease);font-size:clamp(24px,2.9vw,48px);font-weight:700;line-height:1.22}.portfolio-home .cv-line.lit{color:#fff}.portfolio-home .brands{border-bottom:1px solid var(--line);color:var(--ink);padding:44px 0;position:relative;overflow:hidden}.portfolio-home .brand-logo-cloud{width:100%}.portfolio-home .brand-logo-label{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:30px;padding-inline:clamp(20px,5vw,72px);font-size:12px;font-weight:600}.portfolio-home .brand-logo-marquee{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.portfolio-home .brand-logo-runner{will-change:transform;width:max-content;animation:48s linear infinite brand-logo-marquee;display:flex}.portfolio-home .brand-logo-marquee:hover .brand-logo-runner{animation-play-state:paused}.portfolio-home .brand-logo-track{--brand-logo-height:clamp(24px, 2.25vw, 34px);flex-shrink:0;align-items:center;gap:clamp(32px,4.5vw,72px);padding-inline:clamp(22px,3vw,48px);list-style:none;display:flex}.portfolio-home .brand-logo-cell{opacity:.62;width:auto;height:auto;transition:opacity .25s ease, transform .25s var(--ease);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.portfolio-home .brand-logo-cell:hover{opacity:1;transform:translateY(-2px)}.portfolio-home .brand-logo-image{width:auto;height:calc(var(--brand-logo-height) * var(--brand-logo-scale,1));object-fit:contain;max-width:none;max-height:none;display:block}@keyframes brand-logo-marquee{to{transform:translate(-50%)}}.portfolio-home .br-grid{grid-template-columns:repeat(4,1fr);gap:26px 20px;margin-top:70px;display:grid}.portfolio-home .br-logo{border:1px solid var(--line);height:96px;color:var(--ink);opacity:.5;transition:opacity .35s var(--ease), border-color .35s var(--ease), transform .5s var(--ease);border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative}.portfolio-home .br-logo:hover{opacity:1;border-color:#0a0a0a59;transform:translateY(-3px)}.portfolio-home .br-logo img{width:auto;height:auto;max-height:var(--lh,32px);object-fit:contain;max-width:70%;filter:var(--f,grayscale(1) brightness(.75) contrast(2));transition:filter .4s var(--ease);display:block}.portfolio-home .br-logo:hover img{filter:none}.portfolio-home .foot{color:var(--ink);padding:120px 200px 60px;position:relative}.portfolio-home .foot-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:13px}.portfolio-home .foot-big{letter-spacing:-.04em;margin-top:26px;font-size:clamp(44px,8vw,132px);font-weight:800;line-height:.98}.portfolio-home .foot-mail{color:var(--muted);transition:color .3s var(--ease);font-size:clamp(17px,1.7vw,24px);font-weight:500;display:inline-block}.portfolio-home .foot-mail:hover{color:var(--ink)}.portfolio-home .foot-contact{flex-wrap:wrap;align-items:flex-end;gap:24px clamp(28px,4vw,64px);margin-top:34px;display:flex}.portfolio-home .foot-contact-item{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.portfolio-home .foot-contact-item>span{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.portfolio-home .foot-linkedin{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);border-radius:50%;place-items:center;margin-bottom:2px;display:grid}.portfolio-home .foot-linkedin svg{width:18px;height:18px}.portfolio-home .foot-linkedin:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}.portfolio-home .foot-ctas{flex-wrap:wrap;gap:14px;margin-top:52px;display:flex}.portfolio-home .btn{border:1px solid var(--ink);color:var(--ink);isolation:isolate;transition:color .4s var(--ease);border-radius:60px;align-items:center;gap:10px;padding:18px 32px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.portfolio-home .btn:before{content:"";background:var(--ink);z-index:-1;transition:transform .5s var(--ease);position:absolute;inset:0;transform:translateY(101%)}.portfolio-home .btn:hover{color:#fff}.portfolio-home .btn:hover:before{transform:translateY(0)}.portfolio-home .btn .ar{transition:transform .45s var(--ease)}.portfolio-home .btn:hover .ar{transform:translate(3px,-3px)}.portfolio-home .btn.solid{background:var(--ink);color:#fff}.portfolio-home .btn.solid:before{background:#fff}.portfolio-home .btn.solid:hover{color:var(--ink)}.portfolio-home .foot-base{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:90px;padding-top:26px;font-size:13px;display:flex}.portfolio-home .foot-base a{transition:color .3s}.portfolio-home .foot-base a:hover{color:var(--ink)}.portfolio-home .hero{min-height:100svh}.portfolio-home .ab-statement .ln,.portfolio-home .fw-title{white-space:nowrap}@media (max-width:1200px){.portfolio-home .about,.portfolio-home .fw,.portfolio-home .skills,.portfolio-home .cv,.portfolio-home .foot{padding-left:64px;padding-right:64px}.portfolio-home .cv{gap:56px}.portfolio-home .br-grid{grid-template-columns:repeat(4,1fr)}.portfolio-home .sk-head{grid-template-columns:1fr 1.4fr auto}.portfolio-home .sk-col:nth-child(2){display:none}.portfolio-home .sk-grid{grid-template-columns:repeat(3,1fr)}.portfolio-home .about{padding-top:160px;padding-bottom:120px}.portfolio-home .ab-statement{font-size:3.7vw}.portfolio-home .cycler{font-size:9vw}.portfolio-home .fw-title{font-size:5.4vw}}@media (max-width:1024px){.portfolio-home .about{padding-top:140px;padding-bottom:100px}.portfolio-home .fw{padding-top:100px;padding-bottom:110px}.portfolio-home .ab-top{gap:44px}}@media (max-width:900px){.portfolio-home .ab-top{grid-template-columns:1fr;gap:34px;min-height:0}.portfolio-home .ab-quote{max-width:none;margin-left:0}.portfolio-home .ab-metrics{margin-top:74px}}@media (max-width:820px){.portfolio-home{--hero-gutter:20px}.portfolio-home .hero-copy{gap:18px;top:auto;bottom:clamp(28px,4.8vw,82px)}.portfolio-home nav{padding:18px 20px}.portfolio-home .brand{font-size:16px}.portfolio-home .nav-r{gap:16px;font-size:13px}.portfolio-home .hero{padding:100px 20px 24px}.portfolio-home .hero-meta{font-size:18px}.portfolio-home .cycler{font-size:9.6vw;position:relative;bottom:auto;left:auto}.portfolio-home .about{padding:100px 20px 84px}.portfolio-home .ab-label{margin-bottom:18px;font-size:12px}.portfolio-home .ab-statement{font-size:5.6vw}.portfolio-home .ab-quote p{font-size:16px}.portfolio-home .ab-metrics{grid-template-columns:1fr;margin-top:56px}.portfolio-home .ab-metrics .metric{text-align:left;border-top:none;border-left:none!important;padding:24px 0 0!important}.portfolio-home .ab-metrics .metric+.metric{border-top:1px solid var(--line);padding-top:28px!important}.portfolio-home .metric .num{font-size:46px}.portfolio-home .fw{padding:80px 20px 96px}.portfolio-home .fw-head{font-size:12px}.portfolio-home .fw-list{margin-top:20px}.portfolio-home .fw-item{padding:40px 0}.portfolio-home .fw-item:first-child{padding-top:0}.portfolio-home .fw-title{font-size:7.2vw}.portfolio-home .fw-item:hover .fw-title{color:var(--ink);transform:none}.portfolio-home .fw-tags{gap:8px;margin-top:18px}.portfolio-home .fw-tags span{padding:7px 13px;font-size:12px}.portfolio-home .skills{padding:80px 20px}.portfolio-home .sk-head{grid-template-columns:1fr}.portfolio-home .sk-col{border-right:none;padding:0 0 28px}.portfolio-home .sk-col:nth-child(2),.portfolio-home .sk-col:nth-child(4){display:none}.portfolio-home .sk-title{margin-bottom:30px}.portfolio-home .cv{height:320vh;padding:0 20px}.portfolio-home .cv-inner{grid-template-columns:1fr;gap:20px}.portfolio-home .cv-word{font-size:clamp(44px,13vw,80px)}.portfolio-home .cv-line{white-space:normal;font-size:clamp(17px,4.6vw,26px)}.portfolio-home .brands{padding:34px 0 26px}.portfolio-home .br-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:44px}.portfolio-home .br-logo{height:80px}.portfolio-home .foot{padding:80px 20px 44px}.portfolio-home .foot-ctas{margin-top:36px}.portfolio-home .btn{padding:16px 26px;font-size:13px}.portfolio-home .foot-base{margin-top:56px}.portfolio-home .sk-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:44px}.portfolio-home .sk-box{border-radius:12px;gap:14px}.portfolio-home .sk-box span{font-size:12.5px}}@media (max-width:480px){.portfolio-home .hero{padding:92px 18px 20px}.portfolio-home .hero-meta{font-size:16px}.portfolio-home .cycler{font-size:10.4vw}.portfolio-home .about{padding:84px 18px 70px}.portfolio-home .ab-statement{font-size:5.4vw}.portfolio-home .fw{padding:70px 18px 84px}.portfolio-home .fw-title{font-size:8vw}.portfolio-home .metric .num{font-size:40px}}.portfolio-home{isolation:isolate;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:100%}.portfolio-home .hero{font-family:inherit;font-weight:400}.portfolio-home .portrait{object-position:56% bottom}.portfolio-home .ab-metrics .metric .num{font-size:var(--portfolio-metric-size)}.portfolio-home .br-logo{text-align:center;letter-spacing:-.025em;padding:16px;font-weight:650}.portfolio-home .cv-window{height:calc(8.54*clamp(24px,2.9vw,48px))}.portfolio-home:not(.enhanced) :is(nav,.portrait-wrap,.hero-meta,.reveal2,.ab-statement .ln,.ab-metrics .metric,.fw-top,.fw-tags,.sk-box){opacity:1;transform:none}.portfolio-home:not(.enhanced) .fw-title .ln i{transform:none}.portfolio-home:not(.enhanced) :is(.fw,.skills,.cv){background:#0a0a0a}.portfolio-home:not(.enhanced) .fw{--ink:#fff;--muted:#ffffff9e;--line:#ffffff29;color:var(--ink)}.portfolio-home:not(.enhanced){cursor:auto}.portfolio-home .skip-link{z-index:600;color:#000;background:#fff;border:2px solid #000;padding:12px 20px;position:fixed;top:-100px;left:20px}.portfolio-home .skip-link:focus{top:20px}.portfolio-home :is(a,button):focus-visible{outline-offset:6px;outline:2px solid}.portfolio-home section,.portfolio-home footer{scroll-margin-top:100px}.portfolio-home .nav-cta{visibility:visible}html:has(.portfolio-home){scroll-behavior:smooth}@media (max-width:820px){.portfolio-home .cv-window{height:calc(8.54*clamp(17px,4.6vw,26px))}.portfolio-home .portrait-wrap{top:9%}}@media (prefers-reduced-motion:reduce){html:has(.portfolio-home){scroll-behavior:auto}.portfolio-home *,.portfolio-home :before,.portfolio-home :after{transition:none!important;animation:none!important}.portfolio-home .cursor{display:none!important}.portfolio-home .brand-logo-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.portfolio-home .brand-logo-runner{transform:none!important}.portfolio-home .brand-logo-track[aria-hidden=true]{display:none}.portfolio-home{cursor:auto!important}}.portfolio-home .about-inner{padding-inline:6rem}@media (max-width:1200px){.portfolio-home .about-inner{padding-inline:4rem}}@media (max-width:820px){.portfolio-home{--hero-gutter:1.25rem}.portfolio-home .about-inner{padding-inline:var(--hero-gutter)}.portfolio-home :is(.fw,.skills,.brands,.foot){padding:5rem var(--hero-gutter)}.portfolio-home .brands{padding:34px 0 16px}.portfolio-home .hero{min-height:100svh;padding:0}.portfolio-home .hero-copy{left:.75rem;right:.75rem;bottom:max(2rem, env(safe-area-inset-bottom));gap:1.25rem}.portfolio-home .hero-meta{max-width:28rem;font-size:clamp(.875rem,2.8vw,1.125rem);line-height:1.5}.portfolio-home .cycler{letter-spacing:-.05em;width:100%;font-size:4rem;line-height:1}.portfolio-home .ab-top{gap:2rem}.portfolio-home .ab-statement{font-size:clamp(2rem,6.5vw,3.25rem);line-height:1.12}.portfolio-home .ab-quote p{font-size:1rem;line-height:1.65}.portfolio-home .experience-stats{padding-inline:0}.portfolio-home .fw-title{white-space:normal;font-size:clamp(1.75rem,7.5vw,3.5rem)}.portfolio-home :is(.sk-title,.br-title){font-size:clamp(2rem,7vw,3.5rem);line-height:1.12}.portfolio-home .sk-box{gap:1rem;padding:1rem}.portfolio-home .sk-box span{font-size:.875rem;line-height:1.4}.portfolio-home .foot-big{font-size:clamp(2.75rem,10vw,5rem)}}.portfolio-home{--page-gutter:var(--portfolio-page-gutter);--section-space:var(--portfolio-section-space);--content-inset:var(--portfolio-content-inset);--label-size:var(--portfolio-label-size)}.portfolio-home .about{padding:var(--section-space) 0}.portfolio-home .about-inner{width:100%;max-width:none;padding-inline:var(--content-inset);margin-inline:auto}.portfolio-home :is(.fw,.foot){padding:var(--section-space) var(--content-inset)}.portfolio-home .ab-top{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:clamp(32px,4vw,64px);max-width:none;display:grid}.portfolio-home .ab-quote{align-self:start;max-width:52ch}.portfolio-home .ab-statement{font-size:var(--portfolio-heading-size);line-height:var(--portfolio-heading-leading);letter-spacing:-.03em;text-wrap:balance}.portfolio-home .ab-quote p{font-size:var(--portfolio-body-size);line-height:var(--portfolio-body-leading)}.portfolio-home :is(.ab-label,.fw-head,.foot-label,.brand-logo-label){font-size:var(--label-size);letter-spacing:.12em;font-weight:600;line-height:1.5}.portfolio-home .ab-label{margin-bottom:24px}.portfolio-home .experience-stats{margin-top:clamp(40px,5vw,72px);padding-inline:0}.portfolio-home .experience-stats>.grid{padding-block:clamp(24px,3vw,40px)}.portfolio-home .fw-list{margin-top:32px}.portfolio-home .fw-item{padding-block:clamp(32px,4vw,56px)}.portfolio-home .fw-item:last-child{padding-bottom:0}.portfolio-home .fw-title{font-size:var(--portfolio-project-title-size);letter-spacing:-.035em;line-height:1.12}.portfolio-home .fw-title .ln{white-space:normal}.portfolio-home .fw-tags{gap:8px;margin-top:20px}.portfolio-home .fw-tags span{padding:6px 12px;font-size:12px;line-height:1.4}.portfolio-home .foot-big{margin-top:24px;font-size:clamp(48px,8vw,112px);line-height:1.05}.portfolio-home .foot-contact{gap:24px 40px;margin-top:32px}.portfolio-home .foot-contact-item{min-width:0}.portfolio-home .foot-mail{overflow-wrap:anywhere;font-size:clamp(16px,1.6vw,22px);line-height:1.5}.portfolio-home .foot-linkedin{width:44px;height:44px}.portfolio-home .foot-base{margin-top:clamp(48px,6vw,80px);padding-top:24px;line-height:1.6}@media (max-width:900px){.portfolio-home .ab-top{grid-template-columns:minmax(0,1fr)}.portfolio-home .ab-statement{max-width:24ch}}@media (max-width:820px){.portfolio-home .hero-copy{left:var(--page-gutter);right:var(--page-gutter);gap:20px}.portfolio-home .cycler{font-size:var(--portfolio-display-size);line-height:var(--portfolio-display-leading);letter-spacing:var(--portfolio-display-tracking)}.portfolio-home .hero-meta{font-size:clamp(13px,2.2vw,17px);line-height:1.5}.portfolio-home .brands{padding:28px 0 16px}.portfolio-home .brand-logo-label{margin-bottom:20px}.portfolio-home .foot{padding-bottom:32px}}@media (max-width:480px){.portfolio-home .foot-contact{flex-direction:column;align-items:flex-start}.portfolio-home .fw-title{font-size:var(--portfolio-project-title-size)}.portfolio-home .fw-top{flex-wrap:wrap;gap:8px 16px;line-height:1.5}}@font-face{font-family:Geist;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/Geist-Regular.ttf)format("truetype")}@font-face{font-family:Geist;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/Geist-ExtraBold.ttf)format("truetype")}
@font-face{font-family:Jim Nightshade;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jim-nightshade-latin-400-normal.1bd7nlxws89dq.woff2)format("woff2"),url(../media/jim-nightshade-latin-400-normal.2518ezaasebbp.woff)format("woff")}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100;src:url(../media/inter-latin-100-normal.02l4dj-ogm_te.woff2)format("woff2"),url(../media/inter-latin-100-normal.2wzlnf5q-3w6l.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:200;src:url(../media/inter-latin-200-normal.11m5rkahyr8mo.woff2)format("woff2"),url(../media/inter-latin-200-normal.25raa2txahtfw.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(../media/inter-latin-300-normal.3n01f4up96an6.woff2)format("woff2"),url(../media/inter-latin-300-normal.43qp7peofu532.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-400-normal.08vufg9rbrtqu.woff2)format("woff2"),url(../media/inter-latin-400-normal.0qkhh15u3nzc2.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-latin-500-normal.037elok7xg7ol.woff2)format("woff2"),url(../media/inter-latin-500-normal.0zoa3evckypzi.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-600-normal.42bxzpetz5w8g.woff2)format("woff2"),url(../media/inter-latin-600-normal.2azw06-3fu-n-.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(../media/inter-latin-700-normal.0w01zqnq_4v13.woff2)format("woff2"),url(../media/inter-latin-700-normal.0f21to4h01kr-.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-latin-800-normal.406xo0d1qinnu.woff2)format("woff2"),url(../media/inter-latin-800-normal.1sjorl53i71xb.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(../media/inter-latin-900-normal.22qkh5ljlz618.woff2)format("woff2"),url(../media/inter-latin-900-normal.1dm1vm03psv4y.woff)format("woff")}
@font-face{font-family:Alumni Sans Inline One;font-style:normal;font-display:swap;font-weight:400;src:url(../media/alumni-sans-inline-one-latin-400-normal.3xs0ovjlm8uhp.woff2)format("woff2"),url(../media/alumni-sans-inline-one-latin-400-normal.1466ednpn6pye.woff)format("woff")}
@font-face{font-family:Nothing You Could Do;font-style:normal;font-display:swap;font-weight:400;src:url(../media/nothing-you-could-do-latin-400-normal.2fshur8-r6xsb.woff2)format("woff2"),url(../media/nothing-you-could-do-latin-400-normal.3rf8tg3zo-qw4.woff)format("woff")}
@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:300;src:url(../media/space-grotesk-latin-300-normal.2-ppgg-7mrt7n.woff2)format("woff2"),url(../media/space-grotesk-latin-300-normal.25j7cko2_wdff.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/space-grotesk-latin-400-normal.0nlbkvxqdexvu.woff2)format("woff2"),url(../media/space-grotesk-latin-400-normal.2235qcybq8ygl.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(../media/space-grotesk-latin-500-normal.31yp0bkv7z4ku.woff2)format("woff2"),url(../media/space-grotesk-latin-500-normal.1_3k4-aqyhjfx.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(../media/space-grotesk-latin-600-normal.31umv2m7yy2ah.woff2)format("woff2"),url(../media/space-grotesk-latin-600-normal.0x_mo8waoj-3s.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(../media/space-grotesk-latin-700-normal.2lryt7vlpdgap.woff2)format("woff2"),url(../media/space-grotesk-latin-700-normal.1548_r5u-5cgx.woff)format("woff")}
@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:200;src:url(../media/bricolage-grotesque-latin-200-normal.1ycaio5uel_53.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-200-normal.0ax9v9tprnqns.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:300;src:url(../media/bricolage-grotesque-latin-300-normal.3oged6o87k0bb.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-300-normal.31d71v48s_0ha.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:400;src:url(../media/bricolage-grotesque-latin-400-normal.2osmnt0qbjmaj.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-400-normal.1vqi_ozeahfq9.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(../media/bricolage-grotesque-latin-500-normal.2bv40x-ee9h65.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-500-normal.0xqgv-uf4yuop.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(../media/bricolage-grotesque-latin-600-normal.30lnepkl4ioae.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-600-normal.031hvm5pjsrta.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(../media/bricolage-grotesque-latin-700-normal.41y3-1_0zacm3.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-700-normal.0z32ldtfw3y3n.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(../media/bricolage-grotesque-latin-800-normal.0syyyetdkkkxz.woff2)format("woff2"),url(../media/bricolage-grotesque-latin-800-normal.3g422vefi-42l.woff)format("woff")}
