@import"https://api.fontshare.com/v2/css?f[]=switzer@300,500,600&display=swap";:root{color-scheme:light;--font-family-sans: "Switzer", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-weight-regular: 300;--font-weight-bold: 500;--font-weight-heading: 600;--font-weight-black: 900;--font-stroke-black: .012em;--font-size-xs: .875rem;--font-size-sm: 1rem;--font-size-md: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-profile-name: var(--font-size-xl);--font-size-display: clamp(2.25rem, 10cqi, 3.5rem);--font-size-heading-responsive: clamp(1.5rem, 8vw, 2.25rem);--font-size-display-mobile: clamp(2.25rem, 11vw, 3rem);--line-height-none: 1;--line-height-tight: 1.1;--line-height-snug: 1.3;--line-height-normal: 1.4;--line-height-relaxed: 1.6;--letter-spacing-tightest: -.05em;--letter-spacing-tight: -.03em;--letter-spacing-section-heading: -.015em;--letter-spacing-body-open: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .06em;--spacing-section-content: 3.75rem;--spacing-heading-copy: .75rem;--spacing-button-icon-gap: .35rem;--spacing-identity-about-extra: .5rem;--spacing-services-title-content: 2.5rem;--spacing-services-section-top: 6rem;--spacing-service-heading-copy: .625rem;--spacing-service-counter-gap: .75rem;--spacing-service-entry-gap: 3rem;--spacing-stack-title-copy: .75rem;--spacing-stack-copy-cards: 1.875rem;--spacing-intro-cta-gap: 1.5rem;--spacing-primary-action-inline: 1.75rem;--spacing-client-logo-gap: 1.25rem;--spacing-stats-section-before: 6.25rem;--spacing-stats-top: 1.5rem;--spacing-stats-logo-top: 1.75rem;--spacing-stats-divider: 2rem;--spacing-timeline-entry-gap: 3rem;--spacing-testimonial-entry-gap: 3rem;--spacing-page-edge: 1.25rem;--spacing-overlay-top: clamp(7.5rem, 9vw, 8rem);--spacing-overlay-thumbnail-gap: .625rem;--spacing-overlay-thumbnail-padding-y: 1rem;--spacing-work-grid: clamp(.6rem, .9vw, 1rem);--size-site-max: 100rem;--size-sidebar-content-max: 30rem;--size-service-counter: 2rem;--size-client-logo: 2.5rem;--size-overlay-thumbnail: clamp(2.75rem, 3.25vw, 3.25rem);--border-action-shine: .125rem;--radius-full: 999px;--radius-thumbnail: .75rem;--opacity-thumbnail-rest: 1;--opacity-thumbnail-hover: 1;--motion-duration-action-shine: 5s;--motion-duration-action-shine-hover: .9s;--motion-duration-client-marquee: 30s;--motion-easing-out: cubic-bezier(.23, 1, .32, 1);--shadow-action-shine: 0 0 .35rem rgba(202, 63, 47, .5);--color-background: #ffffff;--color-foreground: #111111;--color-foreground-muted: #77736c;--color-surface-subtle: #f3f3f3;--color-border: rgba(17, 17, 17, .12);--color-border-strong: rgba(17, 17, 17, .22);--color-accent: #ca3f2f;--color-success: #00e83f;--color-action-shine: rgba(255, 255, 255, .98);--color-action-shine-soft: rgba(202, 63, 47, .72);--color-transparent: transparent;--color-mask: #000000;--color-logo-muted: rgba(17, 17, 17, .52);--color-avatar-foreground: rgba(17, 17, 17, .7);--color-avatar-on-vibrant: #ffffff;--color-avatar-neutral-start: #dedbd5;--color-avatar-neutral-end: #aaa49b;--color-avatar-blue-start: #b9c5d0;--color-avatar-blue-end: #718292;--color-avatar-vibrant-start: #ff7a45;--color-avatar-vibrant-middle: #e548a5;--color-avatar-vibrant-end: #6657e8;--color-media-background: #111111;--color-media-foreground: #ffffff;--color-media-line: rgba(255, 255, 255, .58);--color-media-caption-muted: rgba(255, 255, 255, .78);--color-media-overlay: rgba(0, 0, 0, .62);--color-media-shadow: rgba(0, 0, 0, .45);--color-card-shadow: rgba(17, 17, 17, .12)}:root{font-family:var(--font-family-sans);font-weight:var(--font-weight-regular);background:var(--color-background);color:var(--color-foreground)}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-background);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:var(--color-transparent)}button{font:inherit}h1,h2,h3,p,figure,blockquote{margin:0}strong,b{font-weight:var(--font-weight-bold)}.app-shell{display:grid;grid-template-columns:minmax(20rem,34%) minmax(0,1fr);width:100%;max-width:var(--size-site-max);height:100dvh;min-height:0;margin:0 auto;overflow:hidden;background:var(--color-background)}.sidebar{display:flex;min-width:0;min-height:0;height:100dvh;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;border-right:1px solid var(--color-border);background:var(--color-background);container-type:inline-size}.work-panel{min-width:0;min-height:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:clamp(.7rem,1vw,1rem)}.sidebar,.work-panel{scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar,.work-panel::-webkit-scrollbar{display:none;width:0;height:0}@media(min-width:781px){body{overflow:hidden}}.intro-block,.profile-section,.sidebar-footer{padding-right:2.5rem;padding-left:1.25rem}.intro-block{display:flex;flex-direction:column;align-items:flex-start;gap:2rem;padding-top:1.25rem;padding-bottom:0}.intro-block>*,.profile-section>*{width:min(100%,var(--size-sidebar-content-max))}.identity-row{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem;align-items:center}.profile-avatar{width:3.5rem;height:3.5rem;border-radius:var(--radius-full);object-fit:cover;filter:saturate(1.02) contrast(1.03)}.eyebrow{margin-bottom:.35rem;color:var(--color-foreground-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);text-transform:uppercase}h1{font-size:var(--font-size-profile-name);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h2{margin-bottom:1.6rem;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight)}.identity-role{margin-top:.25rem;color:var(--color-foreground-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-body-open)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight)}.intro-about{display:grid;width:100%;margin-top:var(--spacing-identity-about-extra)}.about-copy{max-width:42rem;margin:0;color:var(--color-foreground-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-body-open);overflow-wrap:break-word}.status-line{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:0;color:var(--color-foreground-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-tight)}.status-dot{width:.375rem;height:.375rem;border-radius:999px;background:var(--color-success)}.primary-action{position:relative;display:inline-flex;min-height:3.125rem;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--color-foreground);border-radius:999px;padding:0 var(--spacing-primary-action-inline);background:var(--color-foreground);color:var(--color-background);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);isolation:isolate;justify-self:start;transition:background .24s ease,color .24s ease,transform .24s ease}.primary-action:before,.contact-list a:before{position:absolute;z-index:1;inset:calc(-1 * var(--border-action-shine));border-radius:inherit;padding:var(--border-action-shine);background:conic-gradient(from var(--action-shine-angle),var(--color-transparent) 0 68%,var(--color-action-shine-soft) 76%,var(--color-action-shine) 82%,var(--color-action-shine-soft) 88%,var(--color-transparent) 100%);filter:drop-shadow(var(--shadow-action-shine));opacity:0;content:"";pointer-events:none;-webkit-mask:linear-gradient(var(--color-mask) 0 0) content-box,linear-gradient(var(--color-mask) 0 0);-webkit-mask-composite:xor;mask:linear-gradient(var(--color-mask) 0 0) content-box,linear-gradient(var(--color-mask) 0 0);mask-composite:exclude;animation:action-border-shine var(--motion-duration-action-shine) linear infinite}.primary-action:hover{background:var(--color-background);color:var(--color-foreground);transform:translateY(-1px)}@media(hover:hover)and (pointer:fine){.primary-action:hover:before,.contact-list a:hover:before{animation:action-border-shine-hover var(--motion-duration-action-shine-hover) linear both}}.intro-cta{display:grid;gap:var(--spacing-intro-cta-gap);width:100%}.client-slab{display:grid;min-width:0;height:3.125rem;place-items:center;overflow:hidden}.client-marquee{width:100%;height:2.875rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,var(--color-transparent),var(--color-mask) 8%,var(--color-mask) 92%,var(--color-transparent));mask-image:linear-gradient(90deg,var(--color-transparent),var(--color-mask) 8%,var(--color-mask) 92%,var(--color-transparent))}.client-track{display:flex;width:max-content;height:100%;align-items:center;animation:client-marquee var(--motion-duration-client-marquee) linear infinite;will-change:transform}.client-grid{--client-gap: var(--spacing-client-logo-gap);display:flex;flex:none;gap:var(--client-gap);align-items:center;padding-right:var(--client-gap)}.client-logo{display:block;width:auto;height:var(--size-client-logo);flex:none;object-fit:contain}@keyframes client-marquee{to{transform:translate(-50%)}}.profile-section{scroll-margin-top:1rem;padding-top:var(--spacing-section-content);padding-bottom:var(--spacing-section-content);border-top:1px solid var(--color-border)}.profile-section h2{max-width:none;font-weight:var(--font-weight-heading);letter-spacing:var(--letter-spacing-section-heading)}.profile-section--services>h2{margin-bottom:var(--spacing-services-title-content)}.profile-section--services{border-top:0;padding-top:var(--spacing-services-section-top)}.profile-section--stack>h2{margin-bottom:var(--spacing-stack-title-copy)}.profile-section>p,.service-list p,.timeline-list p,.testimonial-list blockquote,.project-lede{color:var(--color-foreground-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-relaxed);letter-spacing:var(--letter-spacing-tight)}.profile-section>.stack-description{letter-spacing:var(--letter-spacing-body-open)}.service-list p{max-width:42ch;letter-spacing:var(--letter-spacing-body-open)}.timeline-list p{letter-spacing:var(--letter-spacing-body-open)}.stats-panel{position:relative;width:100%;margin:var(--spacing-stats-section-before) 0 0;padding:var(--spacing-stats-top) 0 var(--spacing-stats-divider)}.stats-panel:before,.stats-panel:after{position:absolute;right:-2.5rem;left:-1.25rem;height:1px;background:var(--color-border);content:""}.stats-panel:before{top:0}.stats-panel:after{bottom:0}.stats-list{display:grid;grid-template-columns:1fr;gap:.55rem;width:100%;margin:0;padding:0}.stats-panel .client-slab{margin-top:var(--spacing-stats-logo-top)}.stats-list div{display:flex;min-height:0;align-items:baseline;gap:.5rem;padding:0;border:0}.stats-list dt{min-width:2.75rem;font-family:var(--font-family-sans);font-size:var(--font-size-lg);font-style:italic;font-weight:var(--font-weight-black);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight);-webkit-text-stroke:var(--font-stroke-black) currentColor}.stats-list dd{position:relative;margin:0;padding-left:.75rem;color:var(--color-foreground);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-tight)}.stats-list dd:before{position:absolute;top:0;left:0;color:var(--color-border-strong);content:"•"}.service-list,.timeline-list,.testimonial-list{display:grid;gap:2rem}.timeline-list{gap:var(--spacing-timeline-entry-gap)}.testimonial-list{gap:var(--spacing-testimonial-entry-gap)}.service-list{gap:var(--spacing-service-entry-gap);counter-reset:services}.service-list article{counter-increment:services}.service-list h3:before{display:inline-flex;width:var(--size-service-counter);height:var(--size-service-counter);flex:none;align-items:center;justify-content:center;border:0;border-radius:var(--radius-full);background:var(--color-surface-subtle);font-size:var(--font-size-sm);line-height:var(--line-height-none);content:counter(services)}.service-list article,.timeline-list article,.testimonial-list figure{padding:0;border:0}.service-list article{display:grid;grid-template-columns:1fr;gap:var(--spacing-service-heading-copy)}.service-list h3{display:flex;gap:var(--spacing-service-counter-gap);align-items:center;margin-bottom:0}.timeline-list h3{margin-bottom:.42rem}.tag-cloud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.stack-description{max-width:42rem;margin-bottom:var(--spacing-stack-copy-cards);color:var(--color-foreground-muted)}.tag-cloud span{display:flex;min-width:0;min-height:3.75rem;align-items:center;gap:.75rem;border:0;border-radius:.75rem;padding:.65rem .8rem;background:var(--color-surface-subtle);color:var(--color-foreground);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.tag-cloud img{display:block;width:1.75rem;height:1.75rem;flex:none;object-fit:contain}.timeline-list article>span{display:block;margin-bottom:.48rem;color:var(--color-foreground-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.role-line{margin-bottom:.35rem;color:var(--color-foreground)!important;font-weight:var(--font-weight-bold)}.testimonial-list figure{display:grid;grid-template-columns:2.625rem minmax(0,1fr);gap:1rem;align-items:start}.avatar-token{display:grid;width:2.625rem;height:2.625rem;place-items:center;border-radius:var(--radius-full);background:linear-gradient(145deg,var(--color-avatar-neutral-start),var(--color-avatar-neutral-end));color:var(--color-avatar-foreground);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}img.avatar-token{object-fit:cover}.testimonial-list figure:nth-child(2) .avatar-token{background:linear-gradient(145deg,var(--color-avatar-blue-start),var(--color-avatar-blue-end))}.testimonial-list figure:nth-child(3) .avatar-token{background:linear-gradient(135deg,var(--color-avatar-vibrant-start),var(--color-avatar-vibrant-middle) 52%,var(--color-avatar-vibrant-end));color:var(--color-avatar-on-vibrant);font-weight:var(--font-weight-heading)}.testimonial-content{display:grid;gap:.375rem;min-width:0}.testimonial-list figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem;margin:0;font-size:var(--font-size-md);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-tight)}.testimonial-list figcaption span{color:var(--color-foreground-muted);font-weight:var(--font-weight-regular)}.testimonial-list blockquote{margin:0}.contact-list{display:grid;gap:.625rem}.reachout-copy{max-width:42rem;margin-bottom:1.25rem;letter-spacing:var(--letter-spacing-body-open)}.contact-list a{position:relative;display:grid;min-height:3.5rem;grid-template-columns:minmax(4.25rem,.34fr) minmax(0,1fr) 1.5rem;gap:.85rem;align-items:center;border:1px solid var(--color-border-strong);border-radius:1rem;padding:.8rem .9rem;background:var(--color-background);isolation:isolate;transition:border-color .24s ease,background .24s ease,color .24s ease,transform .24s ease}.contact-list span{color:var(--color-foreground-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.contact-list strong{font-size:var(--font-size-md);overflow-wrap:anywhere}.contact-list svg{width:1.125rem;height:1.125rem;justify-self:end;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;transition:transform .2s ease}.contact-list a:hover,.contact-list a:focus-visible{border-color:var(--color-foreground);background:var(--color-foreground);color:var(--color-background);transform:translateY(-1px)}.contact-list a:hover span,.contact-list a:focus-visible span{color:inherit}.contact-list a:hover svg,.contact-list a:focus-visible svg{transform:translate(.15rem,-.15rem)}.contact-list a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@container (max-width: 22rem){.intro-block,.profile-section,.sidebar-footer{padding-right:1.25rem;padding-left:1.25rem}.stats-panel:before,.stats-panel:after{right:-1.25rem}.identity-row{grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem}.profile-avatar{width:3.5rem;height:3.5rem}.stats-list{grid-template-columns:1fr}.service-list article{grid-template-columns:1fr;gap:var(--spacing-service-heading-copy)}.tag-cloud{grid-template-columns:1fr}.sidebar-footer{align-items:flex-start;flex-direction:column}.contact-list a{grid-template-columns:minmax(0,1fr) auto;gap:.28rem .75rem}.project-meta div{grid-template-columns:1fr;gap:.28rem}.contact-list a span{grid-column:1 / -1}.contact-list a svg{grid-column:2;grid-row:2}.testimonial-list figure{grid-template-columns:2.625rem minmax(0,1fr)}}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-bottom:calc(var(--spacing-page-edge) + env(safe-area-inset-bottom));color:var(--color-foreground-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular)}.sidebar-footer button{display:inline-flex;min-width:2.8rem;height:2.35rem;align-items:center;justify-content:center;gap:var(--spacing-button-icon-gap);border:1px solid var(--color-border-strong);border-radius:999px;padding:0 .7rem;background:var(--color-background);color:var(--color-foreground);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;transition:border-color .22s ease,transform .22s ease}.sidebar-footer button svg{width:.875rem;height:.875rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.sidebar-footer button:hover{border-color:var(--color-foreground);transform:translateY(-2px)}.project-overlay{position:fixed;z-index:1000;inset:0;background:var(--color-background);color:var(--color-foreground)}.project-overlay__scroller{width:100%;height:100dvh;overflow-y:auto;overscroll-behavior:contain}.project-overlay__content{width:min(100%,90rem);min-height:100%;margin:0 auto;padding:var(--spacing-overlay-top) clamp(4.75rem,7vw,7rem) clamp(3rem,7vw,7rem)}.project-overlay__header{max-width:48rem;margin-top:clamp(2.5rem,5vw,5rem)}.project-overlay__close,.project-overlay__nav{position:fixed;z-index:1001;display:grid;width:3.25rem;height:3.25rem;place-items:center;border:1px solid var(--color-border-strong);border-radius:999px;padding:0;background:var(--color-background);color:var(--color-foreground);cursor:pointer;transition:background .16s cubic-bezier(.23,1,.32,1),color .16s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1)}.project-overlay__close{top:clamp(1rem,2vw,1.5rem);right:clamp(1rem,2vw,1.5rem)}.project-overlay__thumbnail-nav{position:fixed;z-index:1001;top:clamp(.75rem,1.5vw,1.25rem);left:50%;width:min(calc(100vw - 11rem),72rem);perspective:48rem;transform:translate(-50%);isolation:isolate}.project-overlay__thumbnail-nav:before,.project-overlay__thumbnail-nav:after{position:absolute;z-index:2;top:0;bottom:0;width:2.75rem;content:"";pointer-events:none}.project-overlay__thumbnail-nav:before{left:-.125rem;background:linear-gradient(90deg,var(--color-background) 12%,transparent)}.project-overlay__thumbnail-nav:after{right:-.125rem;background:linear-gradient(270deg,var(--color-background) 12%,transparent)}.project-overlay__thumbnail-rail{display:flex;gap:var(--spacing-overlay-thumbnail-gap);align-items:center;justify-content:safe center;overflow-x:auto;padding:var(--spacing-overlay-thumbnail-padding-y) 1.75rem;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none}.project-overlay__thumbnail-rail::-webkit-scrollbar{display:none}.project-overlay__thumbnail{--thumbnail-fold: 0deg;--thumbnail-scale: 1;position:relative;flex:0 0 var(--size-overlay-thumbnail);aspect-ratio:1;overflow:hidden;border:0;border-radius:var(--radius-thumbnail);padding:0;background:var(--color-surface-subtle);opacity:var(--opacity-thumbnail-rest);transform:rotateY(var(--thumbnail-fold)) scale(var(--thumbnail-scale));transform-origin:center;scroll-snap-align:center;cursor:pointer;transition:opacity .18s var(--motion-easing-out),transform .24s var(--motion-easing-out)}.project-overlay__thumbnail:first-child{--thumbnail-fold: 24deg;transform-origin:left center}.project-overlay__thumbnail:last-child{--thumbnail-fold: -24deg;transform-origin:right center}.project-overlay__thumbnail img{display:block;width:100%;height:100%;border-radius:var(--radius-thumbnail);object-fit:cover}.project-overlay__thumbnail:hover{--thumbnail-scale: 1.04;opacity:var(--opacity-thumbnail-hover)}.project-overlay__thumbnail:active{--thumbnail-scale: .98}.project-overlay__thumbnail:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.project-overlay__nav{top:50%;transform:translateY(-50%)}.project-overlay__nav--previous{left:clamp(.75rem,1.5vw,1.5rem)}.project-overlay__nav--next{right:clamp(.75rem,1.5vw,1.5rem)}.project-overlay__close:active{transform:scale(.97)}.project-overlay__nav:active{transform:translateY(-50%) scale(.97)}.project-overlay__close:focus-visible,.project-overlay__nav:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.project-overlay__close svg,.project-overlay__nav svg{width:1.25rem;height:1.25rem}.project-overlay__close path,.project-overlay__nav path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.75}.project-overlay h2{max-width:14ch;font-size:var(--font-size-display);overflow-wrap:anywhere}.project-overlay .project-meta{max-width:48rem}.project-overlay .project-still--square-video{max-width:48rem;margin-right:auto;margin-left:auto}.project-overlay .project-still--portrait-video{width:fit-content;max-width:30rem;max-height:calc(100dvh - var(--spacing-overlay-top) - var(--spacing-page-edge));margin-right:auto;margin-left:auto}.project-overlay .project-credit{max-width:48rem}@media(hover:hover)and (pointer:fine){.project-overlay__close:hover,.project-overlay__nav:hover{background:var(--color-foreground);color:var(--color-background)}}.project-lede{max-width:32rem;margin-bottom:clamp(2rem,4vw,3.8rem);font-size:var(--font-size-lg);letter-spacing:var(--letter-spacing-body-open)}.project-credit{margin-top:.85rem;color:var(--color-foreground-muted);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed)}.project-meta{display:grid;gap:1rem;margin:0 0 clamp(2rem,4vw,3.5rem)}.project-meta div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;border-top:1px solid var(--color-border);padding-top:.85rem}.project-meta dt{color:var(--color-foreground-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);text-transform:uppercase}.project-meta dd{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);line-height:var(--line-height-normal)}.project-still{position:relative;overflow:hidden;border-radius:8px;background:var(--color-surface-subtle)}.project-still__incoming-media{position:absolute;inset:0;opacity:0;pointer-events:none}.project-still img{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;filter:grayscale(1)}.project-still video{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;background:var(--color-surface-subtle)}.project-still--wide-video video{aspect-ratio:16 / 9;object-fit:contain;background:var(--color-media-background)}.project-still--square-video video{aspect-ratio:1;object-fit:contain;background:var(--color-media-background)}.project-still--portrait-video video{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - var(--spacing-overlay-top) - var(--spacing-page-edge));aspect-ratio:9 / 16;object-fit:contain;background:var(--color-media-background)}.masonry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1px;grid-auto-flow:dense;column-gap:var(--spacing-work-grid);row-gap:0;align-items:stretch}.project-card{display:block;width:100%;min-height:0;align-self:start;padding-bottom:var(--spacing-work-grid);animation:rise-in .68s cubic-bezier(.2,.75,.2,1) both}.project-card--size-wide{grid-column:span 2}.project-button{display:block;width:100%;height:auto;border:0;padding:0;background:var(--color-transparent);cursor:pointer;text-align:left}.project-media{position:relative;min-height:0;aspect-ratio:1 / 1;overflow:hidden;border-radius:8px;background:var(--color-surface-subtle);isolation:isolate;transition:transform .42s ease,box-shadow .42s ease}.project-card--aspect-wide .project-media{aspect-ratio:16 / 9}.project-card--aspect-portrait .project-media{aspect-ratio:9 / 16}.project-poster,.project-media video,.motion-placeholder{position:absolute;inset:0;width:100%;height:100%}.project-poster{z-index:0;background-position:center;background-size:cover;filter:grayscale(1) contrast(1.08);transform:scale(1.01);transition:filter .56s ease,opacity .56s ease,transform .56s ease}.project-media video{z-index:1;object-fit:contain;background:var(--color-media-background);opacity:1;filter:grayscale(.08) contrast(1.04);transition:opacity .42s ease,filter .42s ease}.motion-placeholder{z-index:1;opacity:0;mix-blend-mode:screen;transition:opacity .42s ease}.motion-placeholder span{position:absolute;display:block;border:1px solid var(--color-media-line);transform:translateZ(0)}.motion-placeholder span:nth-child(1){top:18%;left:16%;width:42%;height:24%}.motion-placeholder span:nth-child(2){right:12%;bottom:18%;width:38%;height:30%;border-radius:999px}.motion-placeholder span:nth-child(3){top:48%;left:24%;width:54%;height:1px}.media-sheen{position:absolute;z-index:2;inset:auto 0 0;height:45%;background:linear-gradient(180deg,var(--color-transparent),var(--color-media-overlay));pointer-events:none}.project-caption{position:absolute;z-index:3;right:clamp(.55rem,.8vw,.85rem);bottom:clamp(.55rem,.8vw,.8rem);left:clamp(.55rem,.8vw,.85rem);display:flex;align-items:flex-end;justify-content:space-between;gap:.65rem;color:var(--color-media-foreground);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);text-shadow:0 1px 14px var(--color-media-shadow)}.project-caption span:last-child{max-width:46%;color:var(--color-media-caption-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);text-align:right}.project-button:hover .project-media,.project-button:focus-visible .project-media{transform:scale(.985);box-shadow:0 18px 60px var(--color-card-shadow)}.project-button:hover .project-poster,.project-button:focus-visible .project-poster{filter:grayscale(.12) contrast(1.04) saturate(1.08);transform:scale(1.06)}.project-button:hover video,.project-button:focus-visible video,.project-button:hover .motion-placeholder,.project-button:focus-visible .motion-placeholder{opacity:1;filter:grayscale(0) contrast(1.02) saturate(1.08)}.project-button:hover .motion-placeholder span:nth-child(1),.project-button:focus-visible .motion-placeholder span:nth-child(1){animation:drift-a 2.6s ease-in-out infinite alternate}.project-button:hover .motion-placeholder span:nth-child(2),.project-button:focus-visible .motion-placeholder span:nth-child(2){animation:drift-b 2.8s ease-in-out infinite alternate}.project-button:hover .motion-placeholder span:nth-child(3),.project-button:focus-visible .motion-placeholder span:nth-child(3){animation:drift-c 2.2s ease-in-out infinite alternate}.project-card.is-selected .project-media{outline:2px solid var(--color-accent);outline-offset:-2px}@property --action-shine-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes action-border-shine{0%,55%{--action-shine-angle: 0deg;opacity:0}62%,90%{opacity:1}to{--action-shine-angle: 360deg;opacity:0}}@keyframes action-border-shine-hover{0%{--action-shine-angle: 0deg;opacity:1}85%{opacity:1}to{--action-shine-angle: 360deg;opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes drift-a{to{transform:translate3d(16px,-12px,0) rotate(4deg)}}@keyframes drift-b{to{transform:translate3d(-18px,10px,0) rotate(-5deg)}}@keyframes drift-c{to{transform:translate3d(20px,0,0) scaleX(.72)}}@media(max-width:1100px){.app-shell{grid-template-columns:minmax(19rem,.76fr) minmax(0,1fr)}.masonry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card--size-wide{grid-column:span 2}}@media(max-width:780px){.project-overlay{--spacing-overlay-top: 5.5rem}.project-overlay__thumbnail-nav{display:none}.app-shell{display:flex;flex-direction:column;max-width:100vw;height:auto;min-height:100dvh;overflow:visible}.sidebar{display:contents}.intro-block{order:1;min-height:auto;border-right:0;border-bottom:0}.work-panel{order:2;height:auto;min-height:0;overflow:visible;padding:.55rem;border-bottom:1px solid var(--color-border)}.profile-section{order:4}.sidebar-footer{order:5}.profile-section>p,.service-list p,.timeline-list p,.testimonial-list blockquote,.project-lede{max-width:65ch;overflow-wrap:anywhere}.service-list article{grid-template-columns:1fr;gap:var(--spacing-service-heading-copy)}.masonry-grid{grid-template-columns:1fr}.project-card--size-wide{grid-column:auto}.project-caption{display:grid;align-items:start}h1,h2{font-size:var(--font-size-heading-responsive)}.project-overlay h2{font-size:var(--font-size-display-mobile);overflow-wrap:anywhere}.project-overlay__content{padding-right:1.25rem;padding-left:1.25rem}.project-overlay__nav{width:3rem;height:3rem}.stats-list dt{font-size:var(--font-size-lg)}.project-caption span:last-child{max-width:none;text-align:left}}@media(max-width:480px){.stats-list{grid-template-columns:1fr}.contact-list a{grid-template-columns:minmax(0,1fr) auto;gap:.3rem .75rem}.project-meta div{grid-template-columns:1fr;gap:.3rem}}@media(prefers-reduced-motion:reduce){.sidebar{scroll-behavior:auto}.primary-action:before,.contact-list a:before{animation:none!important;opacity:0}.client-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.client-track{animation:none!important;transform:none}.client-grid[aria-hidden=true]{display:none}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
