:root{--paper:#f5f4f0;--ink:#17232b;--cyan:#20bdd4;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.45 'Google Sans Flex',Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}::selection{background:#b4eaf0}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}em{font-family:'Fraunces',serif;font-weight:400}.header-v4{height:clamp(70px,4.5vw,92px);padding:0 6.75%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #17232b18;position:sticky;top:0;z-index:30;background:#f5f4f0f5;transition:background .2s;backdrop-filter:blur(14px)}.header-scrolled .header-v4{background:#f5f4f0da}.wordmark{font-weight:700;font-size:clamp(20px,1.65vw,32px);letter-spacing:-.035em}.wordmark span{color:var(--cyan);margin-left:3px}.pill-nav{position:relative;display:flex;align-items:center;isolation:isolate}.header-v4 nav{gap:20px}.pill-nav>a,.pill-nav>button{position:relative;z-index:1;border:0;background:none;padding:6px 20px;border-radius:30px;white-space:nowrap;cursor:pointer}.header-v4 nav a{font-size:clamp(13px,1vw,18px);font-weight:600}.moving-pill{position:absolute;left:0;top:0;width:1px;height:30px;border-radius:50px;background:#20bdd41a;pointer-events:none;z-index:0;opacity:0;transform-origin:center;will-change:transform;transition:opacity .18s}.pill-nav .is-target{color:var(--cyan)}.hero-v4{display:grid;grid-template-columns:1fr 1.06fr;align-items:center;column-gap:4%;padding:4vw 6.75% 4.8vw;min-height:40.5vw;max-width:2200px;margin:auto}.hero-copy{position:relative;z-index:3}.eyebrow{font-size:clamp(11px,1.06vw,21px);font-weight:300;letter-spacing:.14em;margin:0 0 2.7vw;white-space:nowrap}.hero-copy h1{margin:0;display:grid;font-size:clamp(54px,5.8vw,124px);line-height:1.025;letter-spacing:-.047em;color:#000;font-weight:700}.title-state{display:flex;flex-direction:column;grid-area:1/1;pointer-events:none}.title-state b{font-weight:700}.title-state em{color:var(--cyan);font-size:1.08em;line-height:1.03;letter-spacing:-.04em}.end-dot{margin-left:.065em}.title-state>*{transition:opacity .28s ease,transform .55s var(--ease)}.title-state>:nth-child(2){transition-delay:35ms}.title-state>:nth-child(3){transition-delay:65ms}.title-brand>*,.title-ai>*{opacity:0;transform:translateY(18px)}.mode-brand .title-off>*,.mode-ai .title-off>*{opacity:0;transform:translateY(-14px)}.mode-brand .title-brand>*,.mode-ai .title-ai>*{opacity:1;transform:translateY(0)}.hero-art{position:relative;aspect-ratio:1.12;min-width:0;isolation:isolate}.home-blob{position:absolute;width:88%;height:90%;border-radius:48% 52% 60% 40%;filter:blur(48px);opacity:.34;z-index:0;pointer-events:none}.blob-cyan{left:-26%;top:4%;background:radial-gradient(ellipse at center,#20bdd4 0%,rgba(32,189,212,.65) 35%,rgba(32,189,212,0) 72%)}.blob-coral{right:-18%;top:20%;background:radial-gradient(ellipse at center,#ef9b76 0%,rgba(239,155,118,.65) 35%,rgba(239,155,118,0) 72%)}.portrait-scene{position:absolute;width:91%;right:0;top:2%;isolation:isolate;transition:opacity .35s,transform .5s var(--ease),filter .4s}.home-portrait{position:relative;z-index:2;width:100%;height:auto;cursor:default}.goat-guest,.goat-caption{position:absolute;height:auto;pointer-events:none;opacity:0}.goat-guest{width:30%;left:1%;top:36%;z-index:1;transform:translateX(0);transition:transform 270ms 70ms cubic-bezier(.4,0,.2,1),opacity 170ms 100ms}.goat-caption{width:24%;left:-43%;top:31%;z-index:3;transform:translateY(5px) scale(.9);transition:opacity 130ms,transform 160ms}.goat-visible .goat-guest{opacity:1;transform:translateX(-91%);transition:transform 420ms cubic-bezier(.22,1.15,.36,1),opacity 100ms;animation:goat-squash .52s ease-out;transform-origin:right center}.goat-visible .goat-caption{opacity:1;transform:translateY(0) scale(1);transition:opacity 230ms 390ms,transform 250ms 390ms cubic-bezier(.22,1.15,.36,1)}@keyframes goat-squash{0%{scale:.91 1.06}48%{scale:1.08 .94}73%{scale:.97 1.025}100%{scale:1 1}}.mode-brand .portrait-scene,.mode-ai .portrait-scene{opacity:0;transform:scale(.98);filter:blur(2px);pointer-events:none}.composition{position:absolute;inset:-2% -1% -2% -6%;z-index:4;pointer-events:none}.composition img{position:absolute;object-fit:contain;height:auto;opacity:0;transform:translateY(100px) scale(.96);transition:opacity .65s ease,transform 1.1s cubic-bezier(.22,.7,.25,1);transition-delay:0ms}.mode-brand .composition-brand img,.mode-ai .composition-ai img{opacity:1;transform:translateY(0) scale(1);transition-delay:calc(var(--order)*60ms)}.composition-brand .comp-papillons{width:40.8751%;left:52.8059%;right:auto;top:15.4570%;z-index:1}.composition-brand .comp-santevet{width:42.3444%;left:8.4637%;right:auto;top:42.3387%;z-index:2}.composition-brand .comp-soma{width:44.3036%;left:45.4462%;right:auto;top:48.1183%;z-index:3}.composition-brand .comp-jim-joe{width:40.8795%;left:19.5032%;right:auto;top:5.3763%;z-index:4}.composition-ai .comp-izipizi{width:50%;left:5%;top:0;z-index:1}.composition-ai .comp-fruzz{width:60%;right:-8%;top:-9%;z-index:2}.composition-ai .comp-thecure{width:53%;left:-3%;top:43%;z-index:3}.composition-ai .comp-altered{width:50%;right:3%;top:51%;z-index:4}.expertise-band{border-block:1px solid #17232b0c}.expertise-tags{justify-content:space-between;max-width:2100px;margin:auto;padding:12px 6%;gap:8px}.expertise-tags button,.expertise-tags a{font-size:clamp(13px,1.25vw,24px);padding:5px 22px;font-weight:400}.expertise-tags .is-target{font-weight:600}.selected-projects{padding:6vw 7.8% 18vw;max-width:2200px;margin:auto}.section-label{font-size:clamp(12px,1.1vw,20px);letter-spacing:.12em;font-weight:300;margin:0 0 9vw}.selection-grid{display:grid;grid-template-columns:43% 43%;column-gap:14%;row-gap:0;align-items:start}.selection-card{position:relative;min-width:0}.card-izipizi{grid-column:1;grid-row:1}.card-santevet{grid-column:2;grid-row:1;margin-top:17.3vw}.card-jim-joe{grid-column:1;grid-row:2;margin-top:-7vw}.card-soma{grid-column:2;grid-row:2;margin-top:11vw}.card-fruzz{grid-column:1;grid-row:3;margin-top:-6vw}.project-link{display:block;position:relative;isolation:isolate}.color-disc{position:absolute;width:133%;aspect-ratio:1;border-radius:50%;background:var(--project-color);left:50%;top:60%;transform:translate(-50%,-50%) scale(.15);opacity:0;z-index:-1;pointer-events:none;transition:transform .48s var(--ease),opacity .25s}.project-picture{position:relative;overflow:hidden;transform:scale(1);border-radius:0;transition:transform .5s var(--ease),border-radius .5s var(--ease),box-shadow .4s}.project-picture img{width:100%;height:auto}.card-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:20px;position:relative}.card-heading h2{font-size:clamp(17px,1.75vw,34px);font-weight:700;margin:0;line-height:1.3;letter-spacing:-.025em}.card-heading h2 span{font-style:italic;font-weight:300;white-space:nowrap}.year{font-size:clamp(11px,1.1vw,19px);font-weight:300}.selection-card p{font-weight:300;font-size:clamp(13px,1.13vw,21px);line-height:1.45;margin:14px 0 0;position:relative;max-width:98%}.all-projects{grid-column:2;grid-row:3;align-self:end;margin-bottom:7vw;font-size:clamp(17px,1.65vw,30px);font-weight:300}.all-projects span{font-weight:700;margin-left:5px}.all-projects:hover{color:var(--cyan)}.reveal-ready .reveal-card{opacity:0;transform:translateY(100px) scale(1.02);transition:transform 1.35s cubic-bezier(.22,.7,.25,1),opacity 1.1s;transition-delay:var(--reveal-delay,0ms)}.reveal-ready .is-revealed .reveal-card{opacity:1;transform:translateY(0) scale(1)}.transition-band{background:var(--cyan);color:white;transform:skewY(-2deg);position:relative;z-index:2;padding:28px 5%;text-align:center}.transition-band p{margin:0;font-size:clamp(25px,3.1vw,62px);line-height:1.2}.transition-band strong{font-weight:700;letter-spacing:.01em}.transition-band em{font-size:1.2em}footer{position:relative;background:#eaece7;padding:6vw 7.8% 2vw;overflow:hidden}.footer-content{position:relative;z-index:2;max-width:70%}footer h2{font-size:clamp(48px,5.7vw,112px);line-height:1.1;letter-spacing:-.055em;color:#000;margin:0 0 2vw}footer h2 em{color:var(--cyan);font-size:1.07em}.contact-row{display:flex;align-items:center;gap:24px;font-size:clamp(11px,.95vw,18px)}.contact-row>span{font-weight:300}.contact-row>span>span{margin-left:18px}.email-button{display:inline-flex;align-items:center;gap:10px;background:#20bdd41a;border-radius:50px;padding:9px 25px;font-size:clamp(12px,1vw,18px);font-weight:600;transition:background .2s}.email-button:hover{background:#20bdd455}.email-button img{width:19px;height:19px}.footer-nav{display:flex;flex-wrap:wrap;gap:20px;font-size:clamp(12px,1vw,18px);font-weight:500;margin:4vw 0 3vw}.footer-nav a:hover{color:var(--cyan)}.social-pending{color:#62696c}.nav-divider{font-size:.75em;align-self:center}.footer-goat{position:absolute;width:24%;height:auto;bottom:4.5vw;right:8%;z-index:1}.footer-bottom{border-top:1px solid #17232b35;padding-top:14px;position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;font-size:clamp(9px,.7vw,13px);font-weight:300;gap:15px}.footer-bottom>span,.location{display:inline-flex;align-items:center;gap:6px}.copyright-separator{margin:0 5px}.location img{height:13px;width:11px}.pointer-halo,.glass-cursor{position:fixed;left:0;top:0;pointer-events:none;z-index:100;opacity:0;display:none;will-change:transform}.pointer-halo{width:36px;height:36px;border-radius:50%;background:var(--cyan)}.glass-cursor{width:64px;height:64px;border-radius:50%;border:1px solid #ffffff90;background:#20bdd43a;box-shadow:inset 1px 1px 3px #ffffffb0,inset -1px -1px 3px #ffffff35;backdrop-filter:blur(2px) saturate(1.25);-webkit-backdrop-filter:blur(2px) saturate(1.25);transition:opacity .16s;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;letter-spacing:.025em}.glass-cursor span{position:relative;z-index:1}.filter-defs{position:absolute;pointer-events:none}.project-link:focus-visible .project-picture{transform:scale(.94);border-radius:60px}.project-link:focus-visible .color-disc{opacity:1;transform:translate(-50%,-50%) scale(1)}
@supports(backdrop-filter:url('#glass-refraction')){.glass-cursor{backdrop-filter:url('#glass-refraction') blur(1px) saturate(1.2)}}
@media(hover:hover) and (pointer:fine){.pointer-halo{display:block}.glass-cursor{display:flex}.project-link:hover .project-picture{transform:scale(.94);border-radius:60px;box-shadow:0 14px 26px #17232b15}.project-link:hover .color-disc{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(min-width:2200px){.hero-v4{min-height:860px;padding-top:88px;padding-bottom:106px}.eyebrow{margin-bottom:58px}.selected-projects{padding-top:132px;padding-bottom:396px}.section-label{margin-bottom:198px}.card-santevet{margin-top:380px}.card-jim-joe{margin-top:-154px}.card-soma{margin-top:242px}.card-fruzz{margin-top:-132px}}
@media(max-width:1050px){.header-v4{padding-inline:5%}.hero-v4{padding-inline:5%;gap:3%;min-height:520px}.hero-copy h1{font-size:6.1vw}.eyebrow{font-size:10px;letter-spacing:.09em}.expertise-tags{padding-inline:3%;gap:0}.expertise-tags button,.expertise-tags a{padding:6px 12px;font-size:14px}.selected-projects{padding-inline:6%}.card-heading h2{font-size:19px}.card-heading h2 span{font-size:17px}.footer-nav{gap:15px}.footer-content{max-width:75%}}
@media(max-width:700px){html{scroll-padding-top:80px}.header-v4{height:72px;padding:0 5%}.wordmark{font-size:20px}.header-v4 nav{gap:0}.header-v4 nav a{font-size:12px;padding:6px 9px}.hero-v4{display:flex;flex-direction:column;align-items:stretch;padding:42px 7% 30px;gap:30px;min-height:0}.eyebrow{font-size:10px;letter-spacing:.1em;margin-bottom:22px;white-space:normal}.hero-copy h1{font-size:clamp(48px,9.7vw,70px)}.hero-art{width:85%;align-self:flex-end;aspect-ratio:1.2}.portrait-scene{width:100%;top:0}.home-blob{filter:blur(28px)}.composition{display:none}.goat-guest,.goat-caption{display:none}.expertise-tags{padding:12px 4%;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.expertise-tags button,.expertise-tags a{font-size:13px;padding:7px 4px}.selected-projects{padding:55px 8% 110px}.section-label{font-size:11px;margin-bottom:45px}.selection-grid{display:flex;flex-direction:column;gap:48px}.selection-card{width:100%;margin:0}.card-heading{margin-top:17px}.card-heading h2{font-size:20px}.card-heading h2 span{font-size:18px}.year{font-size:12px}.selection-card p{font-size:14px;margin-top:12px}.all-projects{align-self:flex-start;margin:10px 0 0;font-size:18px}.transition-band{padding:24px 8%}.transition-band p{font-size:27px}.transition-band em{display:block}.footer-content{max-width:100%}footer{padding:65px 8% 22px}footer h2{font-size:52px;margin-bottom:28px}.contact-row{gap:15px;font-size:10px}.contact-row>span>span{margin-left:8px}.email-button{padding:8px 17px}.footer-nav{gap:13px;margin:35px 0 220px;font-size:12px}.footer-goat{width:210px;right:calc(50% - 105px);bottom:65px}.footer-bottom{font-size:8px;align-items:flex-start}.footer-bottom>span{flex-wrap:wrap;max-width:65%}.copyright-separator{display:none}.location{width:100%}.reveal-ready .reveal-card{transform:translateY(30px) scale(1.03)}}
@media(hover:none),(pointer:coarse){.pointer-halo,.glass-cursor,.moving-pill{display:none!important}.goat-guest,.goat-caption{display:none}.composition{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.pointer-halo,.glass-cursor{display:none!important}.reveal-ready .reveal-card{opacity:1;transform:none}.home-blob{transform:none!important}}

/* V4 refinements: compact first screen, slower spring and continuous background. */
body{isolation:isolate}.color-disc,.pointer-halo{display:none!important}
.expertise-tags .moving-pill{background:#20bdd433}
@media(min-width:701px){.hero-v4{min-height:0;padding-top:1.6vw;padding-bottom:1vw}.hero-art{max-height:calc(100svh - 215px)}.hero-v4{grid-template-columns:1fr 1.06fr}.footer-goat{width:28.44%;right:.25%;bottom:100%;margin-bottom:-1px}}
@media(min-width:2200px){.hero-v4{padding-top:35px;padding-bottom:22px}}
.project-wash{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.project-wash:before{content:'';position:absolute;left:var(--wash-x,50%);top:var(--wash-y,50%);width:285vmax;height:285vmax;border-radius:50%;background:var(--wash-color,transparent);transform:translate(-50%,-50%) scale(0);opacity:0;transition:transform 1.25s cubic-bezier(.2,.65,.3,1),opacity .55s,background .5s}
.project-wash.is-on:before{transform:translate(-50%,-50%) scale(1);opacity:1}
.transition-band:before{content:'';position:absolute;inset:50% 0 -5vw;background:#eaece7;transform:skewY(2deg);z-index:-2}
.transition-band:after{content:'';position:absolute;inset:0;background:var(--cyan);z-index:-1}
.glass-cursor{background:linear-gradient(135deg,#ffffff55,#20bdd433 48%,#ffffff25);border:1px solid #ffffffbd;box-shadow:inset 2px 2px 5px #ffffffb0,inset -2px -3px 6px #ffffff65;backdrop-filter:blur(5px) saturate(1.65) contrast(1.08);-webkit-backdrop-filter:blur(5px) saturate(1.65) contrast(1.08);text-shadow:0 1px 2px #17232b66}
@supports(backdrop-filter:url('#glass-refraction')){.glass-cursor{backdrop-filter:url('#glass-refraction') blur(2px) saturate(1.65)}}
@media(hover:hover) and (pointer:fine){.project-link.custom-pointer,.project-link.custom-pointer *{cursor:none!important}}
@media(max-width:700px){.footer-goat{bottom:100%;margin-bottom:-1px;right:calc(50% - 105px)}.reveal-ready .reveal-card{transform:translateY(60px)}.reveal-ready .is-revealed .reveal-card{transform:none}}
@media(prefers-reduced-motion:reduce){.reveal-ready .reveal-card{transform:none}.project-wash{display:none}}

/* Brand composition follows the 1087 × 744 reference, including PNG alpha margins. */
.composition-brand{inset:auto;left:-15%;top:50%;width:125%;height:auto;aspect-ratio:1087/744;transform:translateY(-50%)}

body:not(.projects-v4) .card-heading h2 span{font-size:.82em;white-space:normal}body:not(.projects-v4) .card-heading .year{flex-shrink:0}

/* UI preview: independent alpha assets preserve the reference's baked-in rotations. */
.title-ui>*{opacity:0;transform:translateY(18px)}
.title-ui{position:absolute;left:0;bottom:0;width:100%;white-space:nowrap}
.mode-ui .title-ui{visibility:visible}
.mode-ui .title-off>*{opacity:0;transform:translateY(-14px)}
.mode-ui .title-ui>*{opacity:1;transform:translateY(0)}
.mode-ui .portrait-scene{opacity:0;transform:scale(.98);filter:blur(2px);pointer-events:none}
.mode-ui .title-off>*{transition-duration:.2s,.45s}
.hero-v4:not(.mode-ui) .title-ui>*{transition-duration:.15s,.2s;transition-delay:0ms}
.composition-ui{position:absolute;left:-8%;top:50%;width:117%;aspect-ratio:900/720;transform:translateY(-50%);pointer-events:none;z-index:4;visibility:hidden;transition:visibility 0s .22s}
.mode-ui .composition-ui{visibility:visible;transition-delay:0s}
.ui-layer{position:absolute;will-change:transform}
.ui-layer img{width:100%;height:auto;opacity:0;transform:translate(var(--enter-x),var(--enter-y)) scale(.975);transition:opacity .17s ease,transform .22s var(--ease);transition-delay:0s}
.mode-ui .ui-layer img{opacity:1;transform:translate(0,0) scale(1);transition-duration:.38s,.6s;transition-delay:calc(var(--order)*65ms)}

@media(max-width:700px),(hover:none),(pointer:coarse){.composition-ui{display:none}}
@media(prefers-reduced-motion:reduce){.ui-layer{transform:none!important}}

/* Social composition uses each supplied transparent asset at its reference angle. */
.title-social{position:absolute;left:0;bottom:0;width:100%;white-space:nowrap}
.title-social>*{opacity:0;transform:translateY(18px)}
.mode-social .title-off>*{opacity:0;transform:translateY(-14px)}
.mode-social .title-social>*{opacity:1;transform:translateY(0)}
.mode-social .portrait-scene{opacity:0;transform:scale(.98);filter:blur(2px);pointer-events:none}
.hero-v4:not(.mode-social) .title-social>*{transition-duration:.15s,.2s;transition-delay:0ms}
.composition-social{position:absolute;left:-14%;top:50%;width:125%;aspect-ratio:960/760;transform:translateY(-50%);pointer-events:none;z-index:4;visibility:hidden;transition:visibility 0s .22s}
.mode-social .composition-social{visibility:visible;transition-delay:0s}
.social-layer{position:absolute;will-change:transform}
.social-layer img{width:100%;height:auto;opacity:0;transform:translate(var(--enter-x),var(--enter-y)) scale(.975);transition:opacity .17s ease,transform .22s var(--ease);transition-delay:0s}
.mode-social .social-layer img{opacity:1;transform:translate(0,0) scale(1);transition-duration:.38s,.6s;transition-delay:calc(var(--order)*65ms)}
@media(max-width:700px),(hover:none),(pointer:coarse){.composition-social{display:none}}
@media(prefers-reduced-motion:reduce){.social-layer{transform:none!important}}

/* V2: fit the whole collage above the expertise strip, including depth movement. */
.hero-v4.mode-social{clip-path:inset(0 -100vmax)}
.composition-social{width:var(--social-fit,100%);aspect-ratio:960/770;left:auto;right:-8%;}
.social-layer img,.social-video-frame{transform:translate(var(--enter-x),var(--enter-y)) scale(.975) rotate(var(--rotation,0deg))}
.mode-social .social-layer img,.mode-social .social-video-frame{transform:translate(0,0) scale(1) rotate(var(--rotation,0deg))}
.social-video-frame{opacity:0;overflow:hidden;border-radius:18px;aspect-ratio:480/854;transition:opacity .17s ease,transform .22s var(--ease)}
.mode-social .social-video-frame{opacity:1;transition-duration:.38s,.6s;transition-delay:calc(var(--order)*65ms)}
.social-video-frame video{display:block;width:100%;height:100%;object-fit:cover}

/* Shared header: fold away without changing document flow. */
.header-v4{transform:translateY(0);transition:transform .42s cubic-bezier(.22,1,.36,1),background .2s}
.header-v4.is-folded{transform:translateY(-105%);pointer-events:none}
@media(prefers-reduced-motion:reduce){.header-v4{transition:none}}

/* Home selection: eight projects in DOM and desktop reading order. */
@media(min-width:701px){
.selected-projects .card-izipizi{grid-column:1;grid-row:1;margin-top:0}
.selected-projects .card-hellofresh{grid-column:2;grid-row:1;margin-top:11vw}
.selected-projects .card-too-good-to-go{grid-column:1;grid-row:2;margin-top:-7vw}
.selected-projects .card-santevet{grid-column:2;grid-row:2;margin-top:11vw}
.selected-projects .card-soma{grid-column:1;grid-row:3;margin-top:-6vw}
.selected-projects .card-soma-ui{grid-column:2;grid-row:3;margin-top:11vw}
.selected-projects .card-jim-joe{grid-column:1;grid-row:4;margin-top:-6vw}
.selected-projects .card-fruzz{grid-column:2;grid-row:4;margin-top:11vw}
.selected-projects .all-projects{grid-column:1/-1;grid-row:5;margin:5vw 0 0;justify-self:center;align-self:center}
}
.selected-projects .all-projects span{display:inline-block;transition:transform .45s var(--ease)}
.selected-projects .all-projects:hover span,.selected-projects .all-projects:focus-visible span{transform:translateX(12px)}
@media(max-width:700px){.selected-projects .selection-card{margin-top:0}}
