@font-face{font-family:Manrope;src:url(/fonts/manrope.woff2) format("woff2");font-style:normal;font-weight:400 800;font-display:swap}@font-face{font-family:Bodoni;src:url(/fonts/bodoni.woff2) format("woff2");font-style:italic;font-weight:500;font-display:swap}.portfolio-shell{min-height:100vh;background:var(--bg);color:var(--ink);font-family:Manrope,ui-sans-serif,system-ui,sans-serif;font-kerning:normal}.portfolio-shell :where(h1,h2,h3,h4,h5,h6){font-family:Manrope,ui-sans-serif,system-ui,sans-serif}.portfolio-shell :where(em,.font-serif){font-family:Bodoni,Georgia,serif}:root{--bg:oklch(100% 0 0);--surface:oklch(100% 0 0);--ink:oklch(26% 0.012 258);--muted:oklch(50% 0.018 258);--line:oklch(90% 0.012 258);--hover:oklch(95% 0.018 258);--accent:oklch(52% 0.16 255);--green:oklch(50% 0.11 161);--button-ink:oklch(100% 0 0);--space-sm:12px;--space-md:24px;--space-lg:48px;--ease:cubic-bezier(0.22,1,0.36,1);color-scheme:light}:root[data-theme=dark]{--bg:oklch(14% 0.028 258);--surface:oklch(18% 0.03 258);--ink:oklch(97% 0.012 255);--muted:oklch(78% 0.03 255);--line:oklch(35% 0.038 258);--hover:oklch(25% 0.04 258);--accent:oklch(79% 0.115 255);--green:oklch(73% 0.11 161);--button-ink:oklch(98% 0.008 255);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,sans-serif;font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}.viewport-blur{position:fixed;inset-inline:0;z-index:25;pointer-events:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:color-mix(in oklch,var(--surface) 18%,transparent)}.viewport-blur-top{top:64px;height:64px;-webkit-mask-image:linear-gradient(180deg,#000 0,transparent);mask-image:linear-gradient(180deg,#000 0,transparent)}.viewport-blur-bottom{bottom:0;height:76px;-webkit-mask-image:linear-gradient(0deg,#000 0,transparent);mask-image:linear-gradient(0deg,#000 0,transparent)}::-moz-selection{background:var(--ink);color:var(--bg)}::selection{background:var(--ink);color:var(--bg)}a,button{-webkit-tap-highlight-color:transparent}button,input{font:inherit}a,button{touch-action:manipulation}a{text-decoration:none}a,button{color:inherit}button{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}em{font-family:Bodoni,Georgia,serif;font-weight:500}svg{flex-shrink:0}img{max-width:100%;height:auto;display:block}.site-frame{width:min(960px,100% - 96px);margin:0 auto;border-inline:1px solid var(--line);background:var(--surface)}.section-pad{padding-inline:clamp(24px,5vw,64px)}.eyebrow,.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;white-space:nowrap}.text-link svg{transition:transform .3s var(--ease)}.text-link:hover svg{transform:translate(2px,-2px)}.text-link:hover{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-100px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 20px}.skip-link:focus{top:12px}.header{height:80px;display:flex;align-items:center;justify-content:space-between;padding-inline:32px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;background:var(--surface)}.header-entrance{animation:header-arrive .7s var(--ease) both}.wordmark{display:inline-flex;align-items:flex-start;font-size:29px;letter-spacing:-2px;font-weight:800;line-height:1}.header nav{display:flex;align-items:center;gap:4px}.header nav a{padding:8px 13px;border-radius:6px;font-size:11px;color:var(--muted);transition:color .2s,background .2s}.header nav a.active,.header nav a:hover{color:var(--ink);background:var(--hover)}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:background .2s,transform .3s}.icon-button:hover{background:var(--hover);transform:rotate(-12deg)}.hero{position:relative;padding-top:52px}.hero-top{justify-content:space-between;gap:24px}.hero-top,.identity{display:flex;align-items:center}.identity{gap:20px}.identity strong{display:block;font-size:22px;font-weight:700;letter-spacing:-.04em;line-height:1.3}.identity-role{display:block;font-size:14px;margin-top:6px;color:var(--accent)}.avatar-wrap{width:80px;height:80px;position:relative;flex-shrink:0}.avatar-wrap>img{width:100%;height:100%;border-radius:50%;border:1px solid var(--line);transition:transform .5s var(--ease)}.identity:hover .avatar-wrap>img{transform:rotate(-7deg)}.hero-top .avatar-wrap{animation:avatar-arrive .75s .08s var(--ease) both}.hero-top .identity>span:last-child{animation:copy-arrive .7s .16s var(--ease) both}.availability{display:inline-flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);white-space:nowrap}.availability i{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px color-mix(in oklch,var(--green) 10%,transparent);animation:status-breathe 2.6s ease-in-out 1.2s infinite}.hero-heading{margin-top:32px}.hero-heading>.eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:12px}h1{font-size:clamp(36px,4.65vw,62px);letter-spacing:-.065em;line-height:1.16;position:relative}.hero h1 em{font-size:1.1em;letter-spacing:-.05em}.hero-title-line{display:inline-block;transform-origin:left bottom;animation:title-arrive .95s var(--ease) both}.hero-title-line-one{animation-delay:.16s}.hero-title-line-two{animation-delay:.25s}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:26px}.hero-description{font-size:12px;color:var(--muted);line-height:1.9}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:12px 17px;border-radius:6px;font-size:11px;font-weight:600;transition:background .2s,transform .3s var(--ease)}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:var(--button-ink);border:1px solid var(--ink)}.primary:hover{background:var(--accent);border-color:var(--accent)}.hero-socials{margin-top:26px}.social-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px}.social-label{font-size:10px;color:var(--muted)}.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px;padding:0;margin:0;list-style:none}.social-links li{animation:social-arrive .55s var(--ease) both}.social-links li:first-child{animation-delay:.42s}.social-links li:nth-child(2){animation-delay:.48s}.social-links li:nth-child(3){animation-delay:.54s}.social-links li:nth-child(4){animation-delay:.6s}.social-link{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:11px;border-radius:4px;transition:color .2s var(--ease),transform .25s var(--ease)}.social-link:before{content:"";position:absolute;inset:5px -8px;z-index:-1;border:1px solid color-mix(in oklch,var(--accent) 14%,transparent);background:color-mix(in oklch,var(--accent) 6%,var(--surface));border-radius:5px;opacity:0;transform:scale(.96);transition:opacity .2s var(--ease),transform .25s var(--ease)}.social-link:focus-visible,.social-link:hover{color:var(--accent);transform:translateY(-1px)}.social-link:focus-visible:before,.social-link:hover:before{opacity:1;transform:scale(1)}.social-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a.social-link:active{transform:translateY(0) scale(.98)}.social-name{position:relative}.social-name:after{content:"";position:absolute;inset:auto 0 -3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.social-link:focus-visible .social-name:after,.social-link:hover .social-name:after{transform:scaleX(1)}.social-arrow{opacity:0;transform:translate(-2px,2px);transition:opacity .25s,transform .3s var(--ease)}.social-link:focus-visible .social-arrow,.social-link:hover .social-arrow{opacity:1;transform:none}.behance-mark{width:18px;font-size:15px;font-weight:800;letter-spacing:-1px;line-height:1}.hero-socials+.hero-meta{margin-top:26px}@media (max-width:600px){.viewport-blur-top{top:51px;height:52px}.viewport-blur-bottom{height:60px}.social-row{gap:0}.social-label{flex-basis:100%}.social-links{gap:0 16px}.social-link{font-size:10px}.social-link>svg{width:14px}.social-arrow{display:none}.hero-socials+.hero-meta{margin-top:20px}}.hero-meta{display:flex;justify-content:space-between;margin-top:56px;padding-block:20px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.hero-meta>span:first-child{display:flex;align-items:center;gap:7px}.meta-dot{opacity:.5}.local-time{font-variant-numeric:tabular-nums;min-width:68px}.craft-switch{text-align:center;min-width:145px;padding-bottom:2px}.craft-controls{gap:4px;border:1px solid var(--line);border-radius:9px;transform:rotate(-4deg);background:var(--bg)}.craft-controls button{width:46px;height:40px;border-radius:5px;display:grid;place-items:center;transition:background .25s,color .25s,transform .25s}.craft-controls button[aria-pressed=true]{background:var(--ink);color:var(--button-ink)}.craft-controls button:hover{transform:translateY(-2px)}.craft-caption{display:block;font-size:9px;margin-top:14px;animation:fade-in .35s var(--ease)}.craft-note{display:block;font-size:8px;color:var(--muted);margin-top:2px}.ruled-divider{height:16px;border-block:1px solid var(--line);background:repeating-linear-gradient(-45deg,transparent,transparent 3px,var(--line) 3px,var(--line) 4px);opacity:.6}.work-section{padding-top:57px;padding-bottom:48px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:15px}h2{font-size:clamp(27px,3vw,39px);letter-spacing:-.055em;line-height:1.25}h2 em{font-size:1.12em;letter-spacing:-.045em}.section-heading>p{font-size:10px;line-height:1.9;color:var(--muted);padding-bottom:2px}.work-filters{display:flex;align-items:center;gap:5px;margin-bottom:20px}.work-filters button{padding:6px 10px;font-size:9px;border-radius:4px;color:var(--muted);transition:background .2s,color .2s}.work-filters button:hover{color:var(--ink)}.work-filters button[aria-pressed=true]{background:var(--hover);color:var(--ink)}.project-count{margin-left:auto;font-size:9px;color:var(--muted)}.project{border-top:1px solid var(--line)}.project:last-child{border-bottom:1px solid var(--line)}.project-toggle{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;text-align:left;gap:16px;padding:22px 0;border-radius:12px}.project-toggle:before{content:"";position:absolute;inset:4px -14px;z-index:-1;border-radius:12px;background:var(--hover);opacity:0;transform:scale(.98);transition:opacity .3s var(--ease),transform .3s var(--ease)}.project-toggle:focus-visible:before,.project-toggle:hover:before{opacity:1;transform:scale(1)}.project-number{font-size:9px;color:var(--muted);font-weight:400;align-self:flex-start;padding-top:4px;min-width:20px;font-variant-numeric:tabular-nums}.project-thumb{width:64px;height:48px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--hover);border:1px solid var(--line);transition:border-color .25s}.project-thumb :is(img,video){width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .6s var(--ease)}.project-toggle:hover .project-thumb :is(img,video){transform:scale(1.08)}.is-open .project-thumb{border-color:var(--accent)}.project-title{font-size:15px;font-weight:600;letter-spacing:-.03em;flex:1}.project-title>span{display:block;font-size:10px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:3px}.project-type-tag{font-size:.75rem;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);white-space:nowrap;transition:color .25s,border-color .25s,background .25s}.is-open .project-type-tag,.project-toggle:hover .project-type-tag{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 35%,var(--line));background:color-mix(in oklch,var(--accent) 8%,var(--surface))}.project-plus{font-size:21px;font-weight:400;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);transition:background .25s var(--ease),border-color .25s,box-shadow .25s var(--ease),transform .35s var(--ease)}.project-toggle:hover .project-plus{background:linear-gradient(180deg,var(--control-top),var(--control-bottom));border-color:var(--control-edge);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.55),0 2px 0 var(--control-depth),0 5px 10px var(--control-shadow);transform:rotate(90deg)}.is-open .project-plus{background:linear-gradient(175deg,var(--primary-top) 0,var(--primary-mid) 55%,var(--primary-bottom) 100%);color:#fff;border-color:var(--primary-edge);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 2px 0 var(--primary-depth),0 6px 14px var(--control-shadow)}.project-panel{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .55s var(--ease),opacity .4s,visibility .55s}.project-panel>div{overflow:hidden;min-height:0}.is-open .project-panel{grid-template-rows:1fr;opacity:1;visibility:visible}.project-image-link{display:block;position:relative;border-radius:6px;background:var(--hover)}.project-image{width:100%;height:auto;transition:transform .9s var(--ease)}.project-image.tall-image{max-height:620px;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top}.project-image-link:hover .project-image{transform:scale(1.025)}.image-link-label{position:absolute;right:20px;bottom:20px;display:flex;gap:16px;align-items:center;border-radius:5px;background:var(--bg);color:var(--ink);padding:10px 13px;font-size:10px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .4s var(--ease)}.project-image-link:focus-visible .image-link-label,.project-image-link:hover .image-link-label{opacity:1;transform:none}.project-description{display:flex;justify-content:space-between;gap:32px;padding:20px 0 28px;align-items:flex-start}.project-description p{max-width:470px;color:var(--muted);font-size:11px;line-height:1.8}.project-description .text-link{font-size:10px;padding-top:3px}.more-work{display:flex;align-items:center;justify-content:center;gap:9px;margin:24px auto 0;padding:9px 14px;font-size:10px;border-radius:5px}.more-work:hover{background:var(--hover)}.more-work svg{transition:transform .4s var(--ease)}.rotated{transform:rotate(180deg)}.about-section{padding-top:58px;padding-bottom:44px}.about-section .section-heading{margin-bottom:36px}.about-grid{display:grid;grid-template-columns:200px 1fr;gap:44px}.about-art{position:relative;align-self:start;padding-top:6px}.about-art img{width:174px;border-radius:50%;margin:17px auto 12px;filter:saturate(.88);transition:transform .6s var(--ease)}.about-art:hover img{transform:rotate(-4deg)}.avatar-note{font-family:Bodoni,Georgia,serif;font-style:italic;font-size:13px;transform:rotate(-6deg)}.avatar-note,.portrait-caption{text-align:center;color:var(--muted)}.portrait-caption{display:block;font-size:9px}.about-copy{display:flex;flex-direction:column;gap:16px}.about-copy p{color:var(--muted);font-size:12px;line-height:1.95}.about-copy p:first-child{color:var(--ink)}.about-copy .text-link{font-size:11px;margin-top:2px}.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}.capabilities svg{stroke-width:1.4;color:var(--muted);margin-bottom:12px}.capabilities h3{font-size:11px;margin-bottom:7px}.capabilities p{font-size:10px;line-height:1.8;color:var(--muted);max-width:180px}.toolkit-section{padding-top:20px;padding-bottom:60px}.compact h2{font-size:29px}.tool-list{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.tool{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);transition:background .2s}.tool>svg{margin-left:auto;color:var(--muted);transition:transform .25s}.tool:hover>svg{transform:translate(2px,-2px);color:var(--ink)}.tool>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.tool strong{font-size:11px;font-weight:600}.tool small{font-size:9px;color:var(--muted)}.tool-mark{width:35px;height:35px;display:grid;place-items:center;font-size:25px;line-height:1;color:var(--ink)}.tool-mark.figma{display:grid;grid-template-columns:9px 9px;grid-template-rows:repeat(3,9px);justify-content:center;align-content:center;gap:0}.figma i{width:9px;height:9px;background:var(--ink);border:1px solid var(--surface);border-radius:5px 0 0 5px}.figma i:nth-child(2){border-radius:0 5px 5px 0}.figma i:nth-child(4){border-radius:50%}.figma i:nth-child(5){border-radius:5px 0 5px 5px}.contact-section{padding-top:60px;padding-bottom:65px}.contact-section .availability{font-size:10px}.contact-section h2{font-size:clamp(33px,3.9vw,49px);margin-top:25px;position:relative}.contact-section h2>svg{position:absolute;right:0;bottom:5px;width:55px;height:55px;stroke-width:1;color:var(--accent)}.contact-section p{font-size:12px;color:var(--muted);margin-top:21px;line-height:1.9}.contact-actions{display:flex;gap:26px;align-items:center;margin-top:30px}.contact-email{display:inline-flex;align-items:center;gap:17px;font-size:18px;font-weight:500;letter-spacing:-.04em;border-bottom:1px solid var(--ink);padding-bottom:5px}.contact-email:hover{color:var(--accent);border-color:var(--accent)}.copy-button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:5px;font-size:10px;color:var(--muted);min-width:106px}.copy-button:hover{background:var(--hover)}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:27px;padding-bottom:27px;border-top:1px solid var(--line)}.footer>span{color:var(--muted)}.footer .text-link,.footer>span{font-size:9px}.footer .wordmark{font-size:22px}.reveal{transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal-pending{opacity:0;transform:translateY(24px) scale(.992)}.entrance{animation:rise-in .9s var(--ease) both}.delay-one{animation-delay:.1s}.delay-two{animation-delay:.24s}.delay-three{animation-delay:.36s}@keyframes header-arrive{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes avatar-arrive{0%{opacity:0;transform:translateY(10px) rotate(-8deg) scale(.88)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes copy-arrive{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes title-arrive{0%{opacity:0;transform:translateY(34px) skewY(2deg)}to{opacity:1;transform:translateY(0) skewY(0)}}@keyframes social-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes status-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.75);opacity:.55}}@keyframes rise-in{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.case-study{padding-top:40px;padding-bottom:48px}.case-heading{margin-top:65px}.back-link:hover svg{transform:translateX(-3px)}.case-top-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.case-index{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.case-heading h1{margin-top:16px;font-size:clamp(40px,5vw,62px)}.case-heading p{font-size:16px;max-width:620px;color:var(--muted);margin-top:24px}.case-meta{display:flex;gap:50px;margin-block:36px;padding-block:24px;border-block:1px solid var(--line)}.case-meta>div{display:flex;flex-direction:column;gap:6px}.case-meta strong{font-size:12px;font-weight:500}.case-meta-label{display:inline-flex;align-items:center;gap:6px}.case-meta-label svg{color:var(--muted);flex-shrink:0}.case-image-tilt{display:block}.case-image{width:100%;height:auto;border-radius:6px}.case-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px}.case-links .button.primary:hover svg{transform:translate(3px,-3px)}.next-project{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:70px;padding-top:30px;border-top:1px solid var(--line)}.next-project-left{display:flex;align-items:center;gap:20px;min-width:0}.next-project-thumb{width:88px;height:66px;flex-shrink:0;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--hover);transition:transform .5s var(--ease),border-color .3s}.next-project-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .7s var(--ease)}.next-project:hover .next-project-thumb{transform:rotate(-2deg);border-color:var(--accent)}.next-project:hover .next-project-thumb img{transform:scale(1.08)}.next-project-copy{display:flex;flex-direction:column;gap:8px;min-width:0}.next-project strong{font-size:28px;font-weight:500;letter-spacing:-.04em}.next-project-arrow{flex-shrink:0;transition:transform .4s var(--ease)}.next-project:hover .next-project-arrow{transform:translate(4px,-4px)}.next-project:hover{color:var(--accent)}.not-found{max-width:650px;margin:18vh auto;padding:24px}.not-found h1{margin:20px 0 35px}@media (min-width:1500px){.site-frame{width:1040px}.hero h1{font-size:67px}.section-pad{padding-inline:72px}.hero-heading{margin-top:32px}.hero-meta{margin-top:64px}}@media (max-width:850px){.site-frame{width:calc(100% - 48px)}.section-pad{padding-inline:32px}.header{padding-inline:25px}h1{font-size:clamp(36px,5.65vw,51px)}.hero-meta>span:last-child{display:none}.about-grid{grid-template-columns:160px 1fr;gap:30px}.about-art img{width:150px}.project-type-tag{display:none}.contact-section h2>svg{width:45px;height:45px}.hero-top>.availability{font-size:9px}}@media (max-width:600px){html{scroll-padding-top:80px}.site-frame{width:calc(100% - 24px)}.section-pad{padding-inline:22px}.header{height:67px;padding-inline:18px}.header nav{gap:0}.header nav a{padding:8px 7px;font-size:10px}.wordmark{font-size:25px}.theme-toggle{width:30px;height:30px}.theme-toggle svg{width:15px}.hero{padding-top:31px}.hero-top{display:block}.avatar-wrap{width:64px;height:64px}.identity{gap:16px}.identity strong{font-size:17px}.identity-role{font-size:11px;margin-top:4px}.hero-top>.availability{margin:19px 0 0 2px}.hero-heading{margin-top:24px}.hero-heading>.eyebrow{font-size:7px;letter-spacing:.12em;margin-bottom:14px}.hero h1{font-size:clamp(29px,7.4vw,43px);letter-spacing:-.065em;line-height:1.22}.hero h1 em{font-size:1.14em}.hero-bottom{margin-top:21px;gap:16px;align-items:flex-start}.hero-description{font-size:11px;max-width:280px}.desktop-break{display:none}.hero-actions{gap:22px;margin-top:23px}.button,.hero-actions .text-link{font-size:10px}.button{padding:11px 12px;gap:15px}.craft-switch{display:none}.hero-meta{margin-top:33px;font-size:8px;padding-block:17px}.hero-meta>span:first-child{gap:5px}.hero-meta svg{width:11px}.ruled-divider{height:12px}.about-section,.work-section{padding-top:36px;padding-bottom:32px}.section-heading{gap:16px;margin-bottom:22px}.section-heading .eyebrow{font-size:8px;margin-bottom:12px}h2{font-size:28px}.section-heading>p{font-size:8px}.work-filters{gap:3px;flex-wrap:wrap;position:relative}.work-filters button{font-size:8px;padding:6px 8px}.project-count{display:none}.project-toggle{gap:10px;padding:19px 0}.project-number{font-size:8px;min-width:16px}.project-thumb{width:46px;height:34px;border-radius:6px}.project-title{font-size:13px}.project-title>span{font-size:9px}.project-plus{width:26px;height:26px;font-size:18px}.project-description{display:block;padding:15px 0 23px}.project-description p{font-size:10px;line-height:1.85}.project-description .text-link{margin-top:13px;font-size:10px}.image-link-label{display:none}.more-work{font-size:10px}.about-section h2{font-size:27px}.about-grid{grid-template-columns:1fr;gap:28px}.about-art{max-width:210px;margin:0 auto}.about-art img{width:158px}.about-copy{gap:16px}.about-copy p{font-size:12px}.capabilities{grid-template-columns:1fr;gap:24px;margin-top:32px;padding-top:26px}.capabilities>div{display:grid;grid-template-columns:25px 1fr;-moz-column-gap:13px;column-gap:13px}.capabilities svg{grid-row:1/3;margin:2px 0 0}.capabilities h3{font-size:12px;margin-bottom:4px}.capabilities p{font-size:10px;max-width:none}.toolkit-section{padding-top:15px;padding-bottom:36px}.compact h2{font-size:26px}.tool-list{gap:0 18px}.tool{gap:9px;padding-block:16px}.tool strong{font-size:10px}.tool small{font-size:8px}.tool-mark{width:25px;font-size:21px}.tool>svg{width:12px}.contact-section{padding-top:38px;padding-bottom:40px}.contact-section h2{font-size:30px}.contact-section h2>svg{display:none}.contact-section p{font-size:11px}.contact-actions{gap:16px;align-items:flex-start;flex-direction:column;margin-top:25px}.contact-email{font-size:20px}.copy-button{font-size:10px}.footer{padding-top:22px;padding-bottom:22px;gap:12px;flex-wrap:wrap}.footer .text-link,.footer>span{font-size:8px}.footer .wordmark{display:none}.case-study{padding-top:27px}.case-heading{margin-top:40px}.case-heading h1{font-size:39px;overflow-wrap:anywhere}.case-heading p{font-size:13px}.case-index{font-size:.6875rem}.case-meta{gap:20px;flex-wrap:wrap;margin-block:26px}.case-meta strong{font-size:11px}.case-meta .eyebrow{font-size:8px}.case-links{flex-direction:column;gap:16px}.case-links .button{width:100%;justify-content:center}.next-project{margin-top:42px;gap:14px}.next-project-left{gap:12px}.next-project-thumb{width:58px;height:44px;border-radius:8px}.next-project strong{font-size:24px}}@media (min-width:601px){.header nav a{font-size:12px}.identity strong{font-size:22px}.identity-role{font-size:14px}.availability{font-size:11px}.hero-description{font-size:14px}.hero-actions .button,.hero-actions .text-link{font-size:12px}.hero-meta{font-size:10px}.section-heading>p{font-size:12px}.work-filters button{font-size:11px;min-height:36px}.project-count{font-size:10px}.project-title{font-size:17px}.project-title>span{font-size:12px}.project-description p{font-size:13px}.project-description .text-link{font-size:11px}.about-copy p{font-size:14px}.capabilities h3{font-size:13px}.capabilities p{font-size:12px}.tool strong{font-size:13px}.tool small{font-size:11px}.contact-section p{font-size:14px}.copy-button{font-size:11px}.footer .text-link,.footer>span{font-size:10px}}@media (max-width:600px){.header nav a{min-height:44px;display:flex;align-items:center}.theme-toggle{width:38px;height:38px}.hero-description{font-size:13px}.hero h1{font-size:clamp(28px,7.25vw,43px)}.hero-actions .button,.hero-actions .text-link{min-height:44px;font-size:11px}.work-filters button{min-height:40px;font-size:9px}.project-title>span{font-size:10px}.project-description p{font-size:12px}.project-description .text-link{min-height:40px;font-size:11px}.about-copy p{font-size:14px}.capabilities p,.tool strong{font-size:12px}.tool small{font-size:10px}.contact-section p{font-size:13px}.copy-button,.more-work{min-height:44px}.section-heading>p{font-size:10px}.craft-switch{display:block;min-width:0;margin-top:25px;text-align:left}.hero-bottom{display:block}.craft-controls{transform:rotate(-3deg);vertical-align:middle}.craft-caption{display:inline-block;margin-left:12px;font-size:10px}.craft-note{display:none}.craft-controls button{width:40px;height:36px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}}:root{--text-body:1rem;--text-small:.875rem;--control-top:#fff;--control-bottom:#e9e8e6;--control-edge:#ceccc8;--control-depth:#bcb9b4;--control-shadow:rgba(35,30,25,.12);--primary-top:oklch(62% 0.17 255);--primary-mid:oklch(51% 0.16 257);--primary-bottom:oklch(41% 0.13 260);--primary-edge:oklch(48% 0.15 257);--primary-depth:oklch(29% 0.09 260)}:root[data-theme=dark]{--control-top:oklch(30% 0.045 258);--control-bottom:oklch(24% 0.04 258);--control-edge:oklch(39% 0.055 258);--control-depth:oklch(13% 0.025 258);--control-shadow:rgba(3,8,20,.42);--primary-top:oklch(53% 0.12 255);--primary-mid:oklch(42% 0.11 258);--primary-bottom:oklch(31% 0.085 260);--primary-edge:oklch(56% 0.11 255);--primary-depth:oklch(15% 0.04 260)}body{font-size:var(--text-body)}.header{z-index:60;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px)}.header-entrance{animation-fill-mode:backwards}.header nav a{font-size:var(--text-small);min-height:44px;display:flex;align-items:center}.case-meta .eyebrow,.eyebrow,.section-heading .eyebrow{font-size:var(--text-small);letter-spacing:0;text-transform:none;font-weight:500}.hero-heading{margin-top:30px}.about-copy p,.case-heading p,.contact-section p,.hero-description,.project-description p{font-size:var(--text-body);line-height:1.8}.about-copy .text-link,.availability,.avatar-note,.case-meta strong,.contact-section .availability,.craft-caption,.footer .text-link,.footer>span,.hero-meta,.portrait-caption,.project-count,.project-description .text-link,.project-title>span,.section-heading>p,.social-label,.social-link,.text-link,.tool small,.work-filters button{font-size:var(--text-small)}.identity-role{font-size:1rem}.project-title{font-size:1.25rem}.project-number{font-size:.75rem}.capabilities h3,.tool strong{font-size:1rem}.capabilities p{font-size:var(--text-small);max-width:none}.hero-meta{flex-wrap:wrap;gap:12px}.hero-meta>span:last-child{display:none}.social-row{gap:8px 18px}.social-label{display:none}.hero-socials{margin-top:30px}.social-links{gap:8px 20px}.social-link{gap:9px;min-height:46px;border-radius:8px;color:var(--muted);transform-origin:left center;transition:color .22s var(--ease),transform .28s var(--ease)}.social-link:before{display:none}.social-icon{width:30px;height:30px;display:inline-grid;place-items:center;flex:0 0 30px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:0 1px 0 var(--line);transform:translateY(0) rotate(0);transition:color .22s,border-color .22s,background .22s,box-shadow .28s var(--ease),transform .32s var(--ease)}.social-icon svg{width:14px;height:14px}.social-link:focus-visible,.social-link:hover{color:var(--ink);transform:translateY(-2px)}.social-link:focus-visible .social-icon,.social-link:hover .social-icon{color:oklch(98% .01 255);border-color:var(--primary-edge);background:linear-gradient(160deg,var(--primary-top),var(--primary-bottom));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.28),0 3px 0 var(--primary-depth),0 7px 12px var(--control-shadow);transform:translateY(-2px) rotate(-7deg)}.social-name{transition:transform .28s var(--ease)}.social-link:focus-visible .social-name,.social-link:hover .social-name{transform:translateX(2px)}.social-name:after{height:2px;bottom:-5px;background:var(--accent);transform-origin:right}.social-link:focus-visible .social-name:after,.social-link:hover .social-name:after{transform-origin:left}.social-arrow{color:var(--accent);transform:translate(-5px,5px) rotate(-8deg)}.social-link:focus-visible .social-arrow,.social-link:hover .social-arrow{transform:translate(1px,-1px) rotate(0)}.social-link:active{transform:translateY(1px) scale(.98)}.social-link:active .social-icon{box-shadow:inset 0 1px 2px rgba(0,0,0,.16),0 1px 0 var(--primary-depth);transform:translateY(1px)}.behance-mark{width:auto;font-size:13px}.section-heading{align-items:end}.section-heading>p{max-width:230px}.work-filters{flex-wrap:wrap;gap:8px;padding-bottom:22px}.work-filters button{min-height:44px;padding:9px 13px}.project-description{gap:24px}.project-description p{max-width:52ch}.tool{min-width:0}.footer{padding-bottom:64px}.button,.copy-button,.more-work,.theme-toggle{position:relative;isolation:isolate;background:linear-gradient(180deg,var(--control-top),var(--control-bottom));border:1px solid var(--control-edge);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.65),0 3px 0 var(--control-depth),0 6px 12px var(--control-shadow);color:var(--ink);transition:transform .28s var(--ease),box-shadow .28s var(--ease)}.button,.copy-button,.hero-actions .button,.more-work{min-height:48px;padding:12px 19px;border-radius:10px;font-size:var(--text-small);font-weight:650}.hero-actions{gap:18px;flex-wrap:wrap}.button{overflow:hidden;gap:20px}.button.primary{--control-depth:var(--primary-depth);--control-edge:var(--primary-edge);background:linear-gradient(175deg,var(--primary-top) 0,var(--primary-mid) 44%,var(--primary-bottom) 100%);color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 4px 0 var(--control-depth),0 8px 16px var(--control-shadow)}.button:before{content:"";position:absolute;inset:-50% -20%;pointer-events:none;background:linear-gradient(110deg,transparent 35%,hsla(0,0%,100%,.22) 48%,transparent 60%);transform:translateX(-90%);transition:transform .7s var(--ease)}.button:focus-visible:before,.button:hover:before{transform:translateX(90%)}.button:hover,.copy-button:hover,.more-work:hover,.theme-toggle:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.35),0 5px 0 var(--control-depth),0 12px 18px var(--control-shadow)}.button:active,.copy-button:active,.more-work:active,.theme-toggle:active{transform:translateY(3px);box-shadow:inset 0 1px 3px rgba(0,0,0,.16),0 1px 0 var(--control-depth),0 2px 5px var(--control-shadow);transition-duration:.1s}.button svg{transition:transform .4s var(--ease)}.button.primary:hover svg{transform:translateY(3px)}.button.secondary:hover svg{transform:translate(3px,-3px)}.theme-toggle{width:44px;height:44px}.theme-toggle svg{transition:transform .6s var(--ease)}.theme-toggle:hover svg{transform:rotate(35deg)}.more-work{margin-top:24px}.work-filters button[aria-pressed=true]{background:linear-gradient(180deg,var(--control-top),var(--control-bottom));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 2px 0 var(--control-depth)}.hero-heading.entrance{animation:none}.title-mask{display:block;overflow:clip;perspective:900px;padding-bottom:.13em;margin-bottom:-.13em}.hero-title-line{transform-origin:50% 100%;animation:title-unfold 1.05s var(--ease) backwards}.hero-title-line-one{animation-delay:.12s}.hero-title-line-two{animation-delay:.26s}.hero-top .avatar-wrap{animation:none}.avatar-wrap>img{animation:avatar-arrive .9s .05s var(--ease) backwards}.tilt-surface{display:block;transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .6s var(--ease)}.tilt-surface:hover{transition-duration:.15s}.identity:hover .avatar-wrap>img{transform:rotate(-5deg) scale(1.04)}.project-tilt{margin:5px}.project-image-link{overflow:hidden}.project-image{transition:transform 1.1s var(--ease)}.project-image-link:hover .project-image{transform:scale(1.045)}.image-link-label{font-size:var(--text-small);border-radius:8px;transition:opacity .3s,transform .5s var(--ease)}.reveal{transition:opacity .85s var(--ease),transform 1s var(--ease)}.reveal-pending{transform:perspective(1200px) translateY(44px) rotateX(4deg)}.craft-switch{min-width:165px}.craft-controls{position:relative;display:inline-flex;padding:5px;gap:0;border-radius:13px;background:linear-gradient(150deg,var(--control-top),var(--control-bottom));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.7),0 3px 0 var(--control-depth),0 10px 22px var(--control-shadow);transform:rotate(-6deg);transition:transform .6s var(--ease)}.craft-controls:hover{transform:rotate(0) translateY(-2px)}.craft-controls button{position:relative;z-index:1;width:48px;height:44px;background:transparent}.craft-controls button[aria-pressed=true]{background:transparent;color:#fff}.craft-slider{position:absolute;top:5px;left:5px;width:48px;height:44px;border-radius:8px;background:linear-gradient(160deg,var(--primary-top),var(--primary-bottom));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.25),0 2px 3px rgba(0,0,0,.2);transition:transform .5s var(--ease)}.craft-code .craft-slider{transform:translateX(48px)}.craft-controls svg{transition:transform .5s var(--ease)}.craft-controls button[aria-pressed=true] svg{transform:rotate(-8deg)}.craft-caption{margin-top:20px}@keyframes title-unfold{0%{opacity:0;transform:translateY(105%) rotateX(-70deg) rotate(3deg)}to{opacity:1;transform:none}}.edge-blur{position:fixed;left:0;right:0;z-index:50;height:100px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.edge-blur-top{--edge-direction:to bottom}.edge-blur-bottom{bottom:0;--edge-direction:to top}.edge-blur:after{content:"";background:linear-gradient(var(--edge-direction),var(--surface),transparent);opacity:.85}.edge-blur i,.edge-blur:after{position:absolute;inset:0}.edge-blur i:first-child{backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(var(--edge-direction),#000 45%,transparent);mask-image:linear-gradient(var(--edge-direction),#000 45%,transparent)}.edge-blur i:nth-child(2){backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(var(--edge-direction),#000 25%,transparent 80%);mask-image:linear-gradient(var(--edge-direction),#000 25%,transparent 80%)}.edge-blur i:nth-child(3){backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(var(--edge-direction),#000 10%,transparent 55%);mask-image:linear-gradient(var(--edge-direction),#000 10%,transparent 55%)}.edge-blur i:nth-child(4){backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(var(--edge-direction),#000,transparent 35%);mask-image:linear-gradient(var(--edge-direction),#000,transparent 35%)}@media (min-width:851px){.edge-blur-top{top:72px;height:64px}}@media (max-width:850px){.hero-top{flex-wrap:wrap;gap:18px}.hero-top .availability{margin-left:100px}.hero-bottom{align-items:start}.hero-description .desktop-break{display:none}.hero h1{font-size:clamp(2rem,5.65vw,3.2rem)}.edge-blur-top{top:72px;height:55px}}@media (max-width:600px){.site-frame{width:calc(100% - 24px)}.section-pad{padding-inline:20px}.header{padding-inline:16px;height:72px;gap:8px}.header nav{gap:0}.header nav a{font-size:.8125rem;padding-inline:8px}.header .wordmark{font-size:25px}.theme-toggle{width:36px;height:36px;flex-shrink:0}.hero{padding-top:32px}.identity{gap:14px}.identity strong{font-size:1.125rem}.identity-role{font-size:var(--text-small)}.hero-top .availability{margin-left:78px;font-size:.8125rem}.hero-heading{margin-top:26px}.hero h1{font-size:clamp(1.6rem,7.15vw,2.7rem)}.hero-actions{gap:12px}.hero-actions .button{padding:11px 13px;gap:12px;font-size:.8125rem}.craft-switch{display:flex;align-items:center;gap:16px;margin-top:32px}.craft-caption{margin:0;font-size:.8125rem}.craft-controls button{width:48px;height:44px}.hero-socials{margin-top:26px}.social-row{gap:0}.social-links{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.social-link{width:100%;font-size:.8125rem}.hero-meta{font-size:.75rem;margin-top:22px}.section-heading{display:block}.section-heading>p{margin-top:12px}.section-heading>p br{display:none}.work-filters{gap:6px}.work-filters button{font-size:.8125rem;padding:8px 10px}.project-title{font-size:1.125rem}.project-title>span{font-size:.8125rem}.project-description .text-link{font-size:var(--text-small)}.tool-list{grid-template-columns:1fr}.tool{padding-block:20px}.capabilities h3{font-size:1rem}.contact-email{font-size:1.375rem}.footer .text-link,.footer>span{font-size:.75rem}.edge-blur-top{top:64px;height:42px}.edge-blur-bottom{height:68px}}@media (prefers-reduced-motion:reduce){.hero-title-line,.reveal-pending,.tilt-surface{transform:none}.button:before{display:none}}@media (max-width:380px){.header{padding-inline:10px;gap:4px}.header nav a{padding-inline:5px;font-size:.75rem}.header .wordmark{font-size:22px}.theme-toggle{width:32px;height:32px}.identity>span:last-child{min-width:0}.identity-role{max-width:21ch}.hero-actions{flex-direction:column;align-items:stretch}}.portfolio-header{height:88px;top:16px;margin-top:16px;padding-inline:28px;gap:24px;box-shadow:0 1px 0 color-mix(in srgb,var(--surface) 65%,transparent)}.portfolio-header .wordmark{min-width:44px;min-height:44px;align-items:center}.header-controls{display:flex;align-items:center;gap:12px}.portfolio-header .theme-toggle{width:44px;height:44px;flex-shrink:0}.portfolio-header .theme-toggle svg{width:18px;height:18px}.portfolio-header .desktop-nav{gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--hover) 40%,transparent)}.portfolio-header .desktop-nav a{position:relative;min-height:40px;padding:8px 16px;font-size:.875rem;font-weight:550;border-radius:10px;transition:color .2s,background .2s,box-shadow .2s}.portfolio-header .desktop-nav a.active{background:var(--surface);box-shadow:0 1px 3px var(--control-shadow),inset 0 0 0 1px var(--line)}.portfolio-header .desktop-nav a:hover{background:var(--surface);color:var(--ink)}.menu-toggle,.mobile-menu{display:none}.edge-blur-top{top:0;height:16px}@media (max-width:700px){.portfolio-header{height:80px;top:12px;margin-top:12px;padding-inline:18px;gap:12px}.portfolio-header .wordmark{font-size:29px}.portfolio-header .desktop-nav{display:none}.header-controls{gap:12px}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;min-width:102px;padding:10px 14px;border:1px solid var(--control-edge);border-radius:12px;background:linear-gradient(180deg,var(--control-top),var(--control-bottom));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.45),0 2px 0 var(--control-depth);font-size:.875rem;font-weight:600;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.menu-toggle:active{transform:translateY(2px);box-shadow:inset 0 1px 2px var(--control-shadow)}.menu-glyph{width:18px;height:18px;position:relative}.menu-glyph i{position:absolute;left:0;top:5px;height:1.5px;width:18px;background:currentColor;border-radius:2px;transition:transform .4s var(--ease)}.menu-glyph i:last-child{top:11px;width:13px;right:0;left:auto}.menu-is-open .menu-glyph i:first-child{transform:translateY(3px) rotate(45deg)}.menu-is-open .menu-glyph i:last-child{width:18px;transform:translateY(-3px) rotate(-45deg)}.mobile-menu{display:grid;grid-template-rows:0fr;position:absolute;top:calc(100% + 8px);left:8px;right:8px;background:var(--surface);border-radius:18px;box-shadow:0 16px 40px var(--control-shadow),0 0 0 1px var(--line);opacity:0;visibility:hidden;transform:translateY(-8px);transition:grid-template-rows .4s var(--ease),transform .4s var(--ease),opacity .25s,visibility .4s}.menu-is-open .mobile-menu{grid-template-rows:1fr;opacity:1;visibility:visible;transform:none}.mobile-menu-clip{overflow:hidden;min-height:0;border-radius:inherit}.header .mobile-nav{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:14px 22px 18px;max-height:calc(100dvh - 112px);overflow-y:auto;overscroll-behavior:contain}.header .mobile-nav a{display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:12px 4px;gap:16px;border-bottom:1px solid var(--line);border-radius:0;font-size:clamp(1.5rem,5vw,1.875rem);font-weight:550;letter-spacing:-.04em;color:var(--ink);background:transparent;opacity:0;transform:translateY(-10px);transition:transform .4s var(--ease),opacity .3s,color .2s}.menu-is-open .mobile-nav a{opacity:1;transform:none}.menu-is-open .mobile-nav a:nth-child(2){transition-delay:.04s}.menu-is-open .mobile-nav a:nth-child(3){transition-delay:.08s}.menu-is-open .mobile-nav a:nth-child(4){transition-delay:.12s}.header .mobile-nav a.active,.header .mobile-nav a:hover{color:var(--accent);background:transparent}.header .mobile-nav a svg{transition:transform .3s var(--ease)}.header .mobile-nav a:hover svg{transform:translate(3px,-3px)}.header .mobile-nav .mobile-contact{min-height:52px;margin-top:12px;padding-block:8px;border:0;font-size:.875rem;letter-spacing:0;color:var(--muted)}.mobile-nav a:focus-visible{outline-offset:1px;border-radius:5px}.edge-blur-top{top:0;height:12px}}@media (prefers-reduced-motion:reduce){.header .mobile-nav a,.menu-glyph i,.mobile-menu{transition:none}}