/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.contents{display:contents}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Geist Sans;src:url(/fonts/geist/geist-sans-variable.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist/geist-mono-variable.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--font-sans:"Geist Sans", Arial, Helvetica, sans-serif;--font-mono:"Geist Mono", "Courier New", monospace;--color-background:#f6f7f9;--color-text:#111318;--font-size-body:14px;--font-size-interface:13px;--font-size-micro:11px;--tracking-heading:-.04em;--tracking-mono:.06em;--layout-unit:12px;--radius-card:24px;--radius-inner:18px;--glass-fill:#edeff285;--glass-panel-fill:#edeff261;--glass-frost:36px;--glass-refraction:.67;--glass-depth:31;--glass-light-angle:50deg;--glass-light-intensity:.84;--glass-dispersion:.71;--glass-splay:.29;--navigation-idle-delay:1.7s;--navigation-idle-scale:.7;--content-window-width:min(900px, calc(100vw - 24px), calc(150svh - 36px));--content-window-shift:0px;--global-navigation-size:50.4px;--global-navigation-gap:12px}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{color:var(--color-text);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#fff;margin:0}button,input,textarea,select{font:inherit}.page,.fullscreen-scenes{width:100%;height:100svh;position:relative;overflow:hidden}.halftone-field{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.desktop-portfolio{height:100%}.mobile-landing{display:none}@media (max-width:960px){.desktop-portfolio{display:none}.mobile-landing{isolation:isolate;height:100%;display:block;position:relative}.mobile-landing__scroll{z-index:1;height:100%;padding:max(24px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overscroll-behavior-y:contain;flex-direction:column;display:flex;position:relative;overflow-y:auto}.mobile-landing__surface{width:min(100%,480px);padding:var(--layout-unit);background:var(--glass-panel-fill);-webkit-backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);border:1px solid #ffffff9e;border-radius:6px;flex:none;margin:auto;box-shadow:0 18px 56px #1c1f2614,inset 0 1px #ffffffb8}.mobile-landing__card{background:#fff;border-radius:6px;padding:clamp(20px,5vw,28px)}.mobile-landing__header{color:#60636a;font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:10px;display:flex}.mobile-landing h1{letter-spacing:var(--tracking-heading);overflow-wrap:break-word;text-wrap:pretty;margin:28px 0 32px;font-size:clamp(24px,6.2vw,32px);font-weight:560;line-height:1.15}.mobile-landing__contacts{border-top:1px solid #ececef;flex-direction:column;align-items:stretch;padding-top:24px;display:flex}.mobile-landing__contacts h2{letter-spacing:-.025em;margin:0 0 8px;font-size:16px;font-weight:540;line-height:1.3}.mobile-landing a{min-height:44px;color:var(--color-text);letter-spacing:-.02em;text-underline-offset:4px;overflow-wrap:anywhere;align-items:center;font-size:15px;font-weight:520;line-height:1.4;-webkit-text-decoration:underline #c4c6ca;text-decoration:underline #c4c6ca;display:inline-flex}.mobile-landing a:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #6f89ad}.mobile-landing a:hover{text-decoration-color:currentColor}.mobile-landing__phone{font-family:var(--font-mono)}.mobile-landing__socials{flex-wrap:wrap;column-gap:18px;display:flex}.mobile-landing__socials a{color:#536d91;font-size:14px}.mobile-landing__meta{color:#60636a;font-family:var(--font-mono);letter-spacing:.01em;border-top:1px solid #ececef;margin:16px 0 0;padding-top:20px;font-size:10px;line-height:1.6}}.halftone-field__video{object-fit:cover;width:150vw;max-width:none;height:150vh;transform:translate3d(calc(-50% + var(--halftone-x)), calc(-50% + var(--halftone-y)), 0);transition:transform var(--halftone-transition-duration) var(--halftone-transition-easing);will-change:transform;position:absolute;top:50%;left:50%}.scene-motion-layer{z-index:0;visibility:hidden;pointer-events:none;outline:none;position:absolute;inset:0;transform:none}.scene-motion-layer:not(.is-visible){display:none}.scene-motion-layer.is-visible{visibility:visible}.scene-motion-layer[aria-hidden=false]{z-index:1;pointer-events:auto}.scene-motion-layer.is-transitioning{z-index:2;animation:scene-layer-transition var(--scene-transition-duration) var(--scene-transition-easing) both;will-change:transform}.scene-motion-layer.is-transitioning.is-outgoing{z-index:2}.scene-motion-layer.is-transitioning.is-incoming{z-index:3}.scene-scale-target{transform-origin:50%;place-items:center;width:100%;height:100%;display:grid;transform:none}.scene-motion-layer.is-preparing .scene-scale-target,.scene-motion-layer.is-returning .scene-scale-target{transform:scale(var(--scene-scale));will-change:transform}.scene-motion-layer.is-transitioning .scene-scale-target{animation:scene-scale-transition var(--scene-transition-duration) var(--scene-transition-easing) both;will-change:transform}.scene-motion-layer.is-returning .scene-scale-target{transition:transform var(--scene-return-duration) var(--scene-return-easing)}@keyframes scene-layer-transition{0%{transform:translate3d(var(--scene-from-x), var(--scene-from-y), 0)}to{transform:translate3d(var(--scene-to-x), var(--scene-to-y), 0)}}@keyframes scene-scale-transition{0%{transform:scale(var(--scene-scale-from))}to{transform:scale(var(--scene-scale-to))}}.screen{width:100%;height:100%;min-height:0;padding:var(--layout-unit);place-items:center;display:grid}.screen--tabs{position:relative}.hero,.columns,.third-stage,.contact-stage{gap:var(--layout-unit);width:var(--content-window-width);aspect-ratio:3/2;max-width:none;height:auto;min-height:0;padding:var(--layout-unit);border-radius:var(--radius-card);background:linear-gradient(var(--glass-light-angle), #ffffff1f, #fff0 46%), linear-gradient(calc(var(--glass-light-angle) + 180deg), #92a5ff06, #ffb18e06 42%, transparent 72%), var(--glass-panel-fill);-webkit-backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);transform:translate3d(var(--content-window-shift), 0, 0);border:1px solid #ffffff9e;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 56px #1c1f2614,inset 0 1px #ffffffb8}.hero{display:block}.hero__main{border-radius:var(--radius-inner);gap:var(--layout-unit);background:0 0;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;padding:0;display:flex}.hero__top{gap:var(--layout-unit);border-radius:var(--layout-unit);flex:auto;width:100%;height:auto;min-height:0;display:flex;overflow:hidden}.hero__portrait{aspect-ratio:1;border-radius:var(--layout-unit);color:#fff;isolation:isolate;background:#fff;flex-direction:column;flex:none;justify-content:space-between;width:auto;height:100%;padding:0;display:flex;position:relative;overflow:hidden}.hero__portrait-image{z-index:0;object-fit:cover;object-position:center;transform-origin:50%;will-change:transform;width:100%;height:100%;transition:transform .42s cubic-bezier(.22,1,.36,1);display:block;position:absolute;inset:0;transform:scale(1.15)}.hero__portrait-heading{z-index:3;gap:3px;display:grid;position:absolute;top:12px;left:12px;right:12px}.hero__portrait-kicker{z-index:3;color:#111318;text-shadow:none;font-weight:600;position:relative}.hero__portrait-role{color:#1113186b;font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono);margin:0;font-weight:500;line-height:1.25}.hero__portrait-about{z-index:2;color:#111318;isolation:isolate;opacity:0;pointer-events:none;background:linear-gradient(#f7f8fa0a 0%,#f7f8fa33 42%,#f7f8fabd 100%);flex-direction:column;justify-content:flex-end;gap:7px;height:58%;padding:12px;transition:opacity .24s,transform .28s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(14px)}.hero__portrait-about:before,.hero__portrait-about:after{z-index:0;content:"";pointer-events:none;position:absolute;inset:0}.hero__portrait-about:before{-webkit-backdrop-filter:blur(20px)saturate(72%);backdrop-filter:blur(20px)saturate(72%);-webkit-mask-image:linear-gradient(#0000 8%,#0000006b 42%,#000000f0 76%,#000 100%);mask-image:linear-gradient(#0000 8%,#0000006b 42%,#000000f0 76%,#000 100%)}.hero__portrait-about:after{-webkit-backdrop-filter:blur(7px)saturate(78%);backdrop-filter:blur(7px)saturate(78%);-webkit-mask-image:linear-gradient(#0000 0%,#0000004d 52%,#000000b8 100%);mask-image:linear-gradient(#0000 0%,#0000004d 52%,#000000b8 100%)}.hero__portrait-about-title,.hero__portrait-about-description{z-index:1;margin:0;position:relative}.hero__portrait-about-title{font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono);font-weight:650;line-height:1.2}.hero__portrait-about-description{white-space:pre-line;max-width:31ch;font-size:11px;line-height:1.35}.hero__portrait:hover .hero__portrait-about,.hero__portrait:focus .hero__portrait-about,.hero__portrait:focus-visible .hero__portrait-about{opacity:1;transform:translate(0)}.hero__portrait:focus-visible{outline-offset:2px;outline:2px solid #ffffffeb}.hero__portrait-kicker,.hero__eyebrow,.hero__meta,.project-card__meta,.project-card__details{font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono)}.hero__portrait-kicker,.hero__eyebrow,.hero__intro-description,.hero__bottom-description{margin:0}.hero__portrait-kicker,.hero__eyebrow{text-transform:uppercase}.hero__portrait-kicker{text-transform:none}.hero__top-right{gap:var(--layout-unit);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex;overflow:hidden}.hero__intro,.hero__bottom{border-radius:var(--layout-unit);min-width:0;min-height:0;color:var(--color-text);background:#fff;flex:1 1 0}.hero__intro{box-shadow:none;background:0 0;border:0;outline:0;padding:0;display:block;position:relative;overflow:hidden}.hero__intro h2,.hero__bottom h2{letter-spacing:-.045em;max-width:18ch;margin:12px 0 0;font-size:clamp(22px,2.1vw,32px);font-weight:560;line-height:.98}.hero__intro-description{max-width:56ch;margin-top:12px;font-size:12px;line-height:1.4}.hero__meta{flex-wrap:wrap;gap:10px 18px;margin-top:auto;line-height:1.25;display:flex}.hero__bottom{aspect-ratio:876/240;width:100%;height:auto;box-shadow:none;background:0 0;border:0;flex:none;padding:0;display:block;overflow:hidden}.hero__motion-video{object-fit:cover;object-position:center;background:0 0;border:0;width:100%;max-width:none;height:100%;display:block}.hero__motion-video--intro{object-fit:contain}.hero__motion-video--bottom{border-radius:inherit;object-fit:contain}.hero__bottom h2{max-width:20ch;font-size:clamp(28px,3vw,46px)}.hero__bottom-description{max-width:30ch;font-size:12px;line-height:1.4}.hero__tools{border-radius:var(--layout-unit);background:#fff;align-items:center;gap:12px;width:100%;height:66px;min-height:66px;padding:12px;display:flex;overflow:auto hidden}.hero__tools::-webkit-scrollbar{display:none}.hero__tool{flex:0 0 42px;width:42px;height:42px;display:block;position:relative;overflow:hidden}.hero__tool img{object-fit:contain;width:100%;height:100%;display:block}.portfolio-navigation{z-index:20;top:50%;left:var(--layout-unit);width:var(--global-navigation-size);height:calc((var(--global-navigation-size) * 3) + (var(--global-navigation-gap) * 2));pointer-events:none;position:absolute;overflow:visible;transform:translateY(-50%)}.portfolio-menu{z-index:1;width:var(--global-navigation-size);gap:var(--global-navigation-gap);pointer-events:auto;margin:0;padding:0;list-style:none;display:grid;position:relative}.portfolio-menu__item{width:var(--global-navigation-size);height:var(--global-navigation-size);position:relative;overflow:visible}.portfolio-menu__button{background:linear-gradient(var(--glass-light-angle), #ffffff1f, #fff0 46%), linear-gradient(calc(var(--glass-light-angle) + 180deg), #92a5ff06, #ffb18e06 42%, transparent 72%), var(--glass-panel-fill);width:100%;height:100%;-webkit-backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);color:#60636a;cursor:pointer;border:0;border-radius:13px;place-items:center;padding:4.2px;transition:background-color .22s,border-color .22s,color .22s,transform .22s cubic-bezier(.22,1,.36,1);display:grid;position:relative;box-shadow:0 18px 56px #1c1f2614,inset 0 0 0 1px #ffffff9e,inset 0 1px #ffffffb8}.portfolio-menu__button[aria-current=page]{color:#202226;background:#fffffff0}.portfolio-menu__button:focus-visible{outline-offset:3px;outline:2px solid #777b83}.portfolio-menu__icon{place-items:center;display:grid}.portfolio-menu__icon img{object-fit:contain;opacity:.5;width:42px;max-width:none;height:42px;transition:opacity .22s;display:block}.portfolio-menu__button[aria-current=page] .portfolio-menu__icon img{opacity:1}.portfolio-menu__label{z-index:30;-webkit-backdrop-filter:blur(24px)saturate(72%)brightness(1.05);backdrop-filter:blur(24px)saturate(72%)brightness(1.05);color:#3f4248;letter-spacing:-.01em;white-space:nowrap;opacity:0;pointer-events:none;background:#f8f9fbdb;border:1px solid #ffffffb8;border-radius:10px;width:max-content;padding:8px 11px;font-size:13px;transition:opacity .2s,transform .22s cubic-bezier(.22,1,.36,1);display:block;position:absolute;top:50%;left:calc(100% + 10px);transform:translate(-8px,-50%);box-shadow:0 8px 24px #1c1f2614}.portfolio-menu__button:focus-visible .portfolio-menu__label{opacity:1;transform:translateY(-50%)}.columns{align-items:stretch;display:flex}.columns__item{border-radius:var(--radius-inner);min-width:0;min-height:0;color:var(--color-text);cursor:pointer;text-align:left;will-change:transform;background:#fff;border:0;flex-direction:column;flex:1 1 0;justify-content:flex-end;padding:22px 18px;transition:transform .42s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden}.columns__item:focus-visible,.tabs-navigation__tab:focus-visible,.contact-stage button:focus-visible,.contact-stage a:focus-visible{outline-offset:-3px;outline:2px solid #777b83}.columns__number,.contact-stage__eyebrow{color:#777b83;font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono);text-transform:uppercase}.columns__copy{margin-top:auto;display:block}.columns__label{letter-spacing:-.055em;text-transform:uppercase;text-orientation:mixed;white-space:nowrap;writing-mode:vertical-rl;font-size:clamp(28px,3.5vw,48px);font-weight:800;line-height:.88;display:block;transform:rotate(180deg)}.columns__description{color:#777b83;max-width:22ch;font-size:12px;line-height:1.4}.columns__action{color:#777b83;font-size:var(--font-size-micro);white-space:nowrap;font-weight:520;transition:transform .42s cubic-bezier(.22,1,.36,1);transform:translate(0)}.columns__item[data-active=true] .columns__action{transform:translate(8px)}.third-stage{border-radius:12px;padding:0;display:block}.third-stage__surface{background:0 0;border-radius:2px;position:absolute;inset:2% .916667%}.project-mosaic{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.project-mosaic__catalog{will-change:transform;transition:transform .62s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:translate(0)}.project-mosaic--detail-open .project-mosaic__catalog{pointer-events:none;transform:translate(-105%)}.project-mosaic__layer{will-change:transform;position:absolute;inset:0;transform:translate(0)}.project-mosaic__layer[data-project-count]{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;place-items:start;gap:26px 20px;padding:22px;display:grid}.project-mosaic__layer[data-project-count="0"]{padding:0;display:block}.project-mosaic__layer[data-project-count] .project-card--project{aspect-ratio:auto;width:100%;height:auto;position:relative;inset:auto}.scene-motion-layer.is-incoming .project-card--project{animation:project-card-scene-reveal var(--scene-transition-duration) var(--scene-transition-easing) both}.scene-motion-layer.is-outgoing .project-card--project{animation:project-card-scene-hide var(--scene-transition-duration) var(--scene-transition-easing) both}@keyframes project-card-scene-reveal{0%,42%{opacity:0}to{opacity:1}}@keyframes project-card-scene-hide{0%{opacity:1}36%,to{opacity:0}}.project-mosaic__layer--incoming{animation:.62s cubic-bezier(.22,1,.36,1) both project-mosaic-in}.project-mosaic__layer--outgoing{animation:.62s cubic-bezier(.22,1,.36,1) both project-mosaic-out}@keyframes project-mosaic-in{0%{transform:translate(105%)}to{transform:translate(0)}}@keyframes project-mosaic-out{0%{transform:translate(0)}to{transform:translate(-105%)}}.project-card{min-width:0;min-height:0;color:var(--color-text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:0;padding:0;transition:transform .26s cubic-bezier(.22,1,.36,1);display:block;position:absolute;overflow:visible;transform:translate(0)}.project-card:focus-visible{outline-offset:5px;outline:2px solid #777b83}.project-card__image{object-fit:contain;object-position:left bottom;width:auto;max-width:100%;height:auto;max-height:158px;display:block}.project-card__copy{min-width:0;margin-top:9px}.project-card h3{letter-spacing:-.035em;overflow-wrap:anywhere;margin:0;font-size:clamp(12px,1.05vw,16px);font-weight:560;line-height:1}.project-card--single{width:96.3333%;height:92.6667%;top:3.83333%;left:1.83333%}.project-mosaic__empty{color:#26282c;background:#fff;border-radius:6px;flex-direction:column;justify-content:flex-end;padding:24px;display:flex;position:absolute;inset:3.83333% 1.83333%}.project-mosaic__empty span{font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono);text-transform:uppercase}.project-mosaic__empty p{letter-spacing:-.04em;max-width:28ch;margin:10px 0 0;font-size:clamp(18px,2vw,30px);font-weight:560;line-height:1}.project-card__details{color:#65686d;margin:8px 0 0;line-height:1.25}.project-card--one{width:17.75%;height:48.8333%;top:3.83333%;left:1.83333%}.project-card--two{width:17.75%;height:41.8333%;top:54.6667%;left:1.83333%}.project-card--three{width:17.75%;height:29.5%;top:3.83333%;left:20.5833%}.project-card--four{width:17.75%;height:61.1667%;top:35.3333%;left:20.5833%}.project-card--five{width:17.75%;height:43.8333%;top:3.83333%;left:39.3333%}.project-card--six{width:17.75%;height:47%;top:49.5%;left:39.3333%}.project-card--seven{width:16.5%;height:92.6667%;top:3.83333%;left:58.0833%}.project-card--eight{width:22.5833%;height:40.3333%;top:3.83333%;left:75.5833%}.project-card--nine{width:22.5833%;height:32.5%;top:46.1667%;left:75.5833%}.project-detail{z-index:5;padding:var(--layout-unit);gap:var(--layout-unit);opacity:0;pointer-events:none;will-change:transform;grid-template-columns:2fr 1fr;transition:transform .62s cubic-bezier(.22,1,.36,1),opacity .26s;display:grid;position:absolute;inset:0;transform:translate(105%)}.project-detail--open{opacity:1;pointer-events:auto;transform:translate(0)}.project-detail:focus-visible{outline:none}.project-detail__gallery,.project-detail__information{border-radius:12px;min-width:0;min-height:0;position:relative;overflow:hidden}.project-detail__gallery{background:#fff}.project-detail__image-stage{background:#fff;animation:.42s both project-detail-image-in;position:absolute;inset:0;overflow:hidden}.project-detail__image-backdrop,.project-detail__image{display:block;position:absolute}.project-detail__image-backdrop{z-index:0;object-fit:cover;filter:blur(28px)saturate(.88);opacity:.25;width:116%;height:116%;inset:-8%;transform:scale(1.06)}.project-detail__image{z-index:1;object-fit:contain;width:calc(100% - 32px);height:calc(100% - 32px);inset:16px}@keyframes project-detail-image-in{0%{opacity:.45;transform:scale(1.012)}to{opacity:1;transform:scale(1)}}.project-detail__information{color:#111318;background:#fff;flex-direction:column;padding:12px;display:flex}.project-detail__date{font-family:var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;margin:0;font-size:clamp(8px,.85vw,11px)}.project-detail__information h2{letter-spacing:-.04em;overflow-wrap:anywhere;max-width:11ch;margin:0;font-size:clamp(16px,2.15vw,24px);font-weight:560;line-height:1.02}.project-detail__description{color:#6d6d6d;max-width:28ch;margin:8px 0 0;font-size:clamp(10px,1.2vw,14px);font-weight:350;line-height:1.35}.project-detail__close{color:#6d6d6d;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:0;align-items:baseline;gap:5px;width:-moz-fit-content;width:fit-content;margin-top:16px;padding:0;font-size:clamp(9px,1vw,12px);line-height:1.35;transition:color .22s,text-decoration-color .22s;display:inline-flex}.project-detail__close-label{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.project-detail__close:focus-visible,.project-detail__slider-control:focus-visible{outline-offset:2px;outline:2px solid #777b83}.project-detail__date{color:#111318;text-align:right;align-self:flex-end;margin-top:auto}.project-detail__slider-control{z-index:2;cursor:pointer;background:0 0;border:0;place-items:center;width:84px;padding:0;display:grid;position:absolute;top:0;bottom:0}.project-detail__slider-control--previous{left:0}.project-detail__slider-control--next{right:0}.project-detail__slider-control span{opacity:0;background:#ffffffe6;border:1px solid #fffffffa;border-radius:999px;width:5px;height:42px;transition:opacity .42s,transform .52s cubic-bezier(.22,1,.36,1);display:block;transform:scaleY(.72);box-shadow:0 2px 18px #00000029}.project-detail__slider-control:hover span,.project-detail__slider-control:focus-visible span{opacity:1;transform:scaleY(1)}.contact-stage{height:auto;min-height:0;padding:var(--layout-unit);border-radius:12px;align-items:stretch;display:flex}.contact-stage__aside{background:#fff;border-radius:12px;flex:0 0 324px;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;width:324px;min-width:0;height:auto;min-height:0;padding:12px;display:grid;overflow:hidden}.contact-stage__content{gap:var(--layout-unit);border-radius:6px;flex:1 1 0;grid-template-rows:minmax(0,1fr) 232px;grid-template-columns:minmax(0,1fr);width:840px;min-width:0;height:auto;display:grid}.contact-stage__aside h2,.contact-stage__bottom h2{letter-spacing:-.055em;margin:10px 0 0;font-size:clamp(28px,3vw,48px);font-weight:560;line-height:.98}.contact-stage__aside h2{margin:0}.contact-stage__description{overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#b9bbc0 transparent;scrollbar-gutter:stable;overflow-wrap:anywhere;color:#60636a;min-width:0;min-height:0;margin:0;padding-right:12px;font-size:14px;line-height:1.45;overflow:hidden auto}.contact-stage__description:focus-visible{outline-offset:2px;outline:2px solid #777b83}.contact-stage__description p{margin:0}.contact-stage__description p+p{margin-top:12px}.contact-stage__facts{gap:12px;margin:0;display:grid}.contact-stage__facts div{border-top:1px solid #e7e7e7;gap:12px;padding-top:12px;display:grid}.contact-stage__facts dt{color:#777b83;font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:var(--tracking-mono);line-height:1.2}.contact-stage__facts dd{font-family:var(--font-mono);font-size:var(--font-size-micro);margin:0;line-height:1.3}.contact-stage__text-link{color:var(--color-text);font-size:var(--font-size-interface);text-underline-offset:4px;font-weight:520;-webkit-text-decoration:underline #c4c6ca;text-decoration:underline #c4c6ca}.contact-qr-slider{isolation:isolate;background:#fff;border-radius:12px;place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden;container-type:size}.contact-qr-slider__canvas{z-index:2;aspect-ratio:538/330;pointer-events:none;width:min(100cqw,163.03cqh);max-width:100%;position:relative}.contact-qr-slider__slides,.contact-qr-slider__slide{position:absolute;inset:0}.contact-qr-slider__slide{visibility:hidden;opacity:0;transition:opacity .24s,visibility 0s .24s}.contact-qr-slider__slide.is-active{visibility:visible;opacity:1;transition-delay:0s}.contact-qr-slider__qr,.contact-qr-slider__icon{aspect-ratio:1;object-fit:contain;-webkit-user-select:none;user-select:none;height:auto;display:block;position:absolute}.contact-qr-slider__qr{width:46.4684%;top:12.1212%;left:11.71%}.contact-qr-slider__icon{width:11.5242%;top:40.6061%;left:73.4201%}.contact-qr-slider__indicators{pointer-events:auto;justify-content:space-between;width:18.2156%;display:flex;position:absolute;top:82.1212%;left:70.0744%}.contact-qr-slider__indicator{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;width:19.3878%;padding:0;position:relative}.contact-qr-slider__indicator:before{content:"";position:absolute;inset:-4px}.contact-qr-slider__indicator span{border-radius:inherit;aspect-ratio:1;background:#d9d9d9;width:100%;transition:background-color .24s;display:block}.contact-qr-slider__indicator[aria-current=true] span{background:#747474}.contact-qr-slider__side{z-index:1;cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:50%;padding:0;position:absolute;top:0;bottom:0}.contact-qr-slider__side--previous{left:0}.contact-qr-slider__side--next{right:0}.contact-stage__bottom{background:#fff;border-radius:12px;flex-direction:column;min-width:0;min-height:0;padding:28px 30px 24px;display:flex}.contact-stage__bottom h2{letter-spacing:-.025em;margin-top:0;font-size:clamp(16px,1.35vw,20px);font-weight:540;line-height:1.05}.contact-stage__contact-links{gap:9px;width:100%;margin-top:11px;display:grid}.contact-stage__email-title{color:inherit;cursor:pointer;text-decoration:none}.contact-stage__email-title:hover,.contact-stage__email-title:focus-visible{text-underline-offset:4px;-webkit-text-decoration:underline #c4c6ca;text-decoration:underline #c4c6ca}.contact-stage__email,.contact-stage__resume-link{width:-moz-fit-content;width:fit-content;color:var(--color-text);letter-spacing:-.02em;text-underline-offset:4px;font-size:clamp(14px,1.35vw,17px);font-weight:520;line-height:1.15;-webkit-text-decoration:underline #c4c6ca;text-decoration:underline #c4c6ca;display:inline-block}.contact-stage__phone{font-family:var(--font-mono)}.contact-stage__footer-row{flex-direction:column;align-items:stretch;gap:9px;width:100%;margin-top:auto;display:flex}.contact-stage__socials{flex-wrap:nowrap;gap:14px;min-width:0;display:flex}.contact-stage__socials a,.contact-stage__meta,.contact-stage__top-button{color:#60636a;font:inherit;font-size:var(--font-size-micro)}.contact-stage__socials a{color:#6f89ad;text-underline-offset:4px;white-space:nowrap;font-weight:580;-webkit-text-decoration:underline #6f89ad94;text-decoration:underline #6f89ad94}.contact-stage__legal-row{border-top:1px solid #ececef;align-items:center;gap:12px;width:100%;min-width:0;padding-top:8px;display:flex}.contact-stage__meta{font-family:var(--font-mono);letter-spacing:.035em;white-space:nowrap;margin:0}.contact-stage__top-button{cursor:pointer;background:#fff;border:1px solid #e3e4e6;border-radius:999px;min-width:96px;margin-left:auto;padding:5px 16px}.tabs-navigation{z-index:2;top:max(var(--layout-unit), calc(50% - 388px));width:var(--content-window-width);background:var(--glass-fill);height:72px;-webkit-backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);backdrop-filter:blur(var(--glass-frost)) saturate(58%) contrast(86%) brightness(1.08);transform:translate3d(calc(-50% + var(--content-window-shift)), 0, 0);border:1px solid #fff9;border-radius:22px;margin-inline:0;padding:7px;position:absolute;left:50%;right:auto;overflow:visible;box-shadow:0 18px 56px #1c1f2614,inset 0 1px #ffffffb8}.tabs-navigation__surface{background:#fffffff5;border:1px solid #e3e4e6;border-radius:16px;width:100%;height:100%;padding:3px;display:flex;overflow:hidden}.tabs-navigation__tab{color:#777b83;cursor:pointer;min-width:112px;font:inherit;background:0 0;border:1px solid #0000;border-radius:12px;flex:1 1 0;place-content:center;padding:0 12px;font-size:12px;line-height:normal;transition:flex-grow .52s cubic-bezier(.22,1,.36,1),transform .52s cubic-bezier(.22,1,.36,1),color .22s,background-color .22s,border-color .22s;display:grid;position:relative}.tabs-navigation__tab span{white-space:nowrap;transform:translate(0)}.tabs-navigation__tab[aria-selected=true]{color:var(--color-text);background:#f1f1f1;border-color:#dedfe2;flex-grow:1.35;transform:translateY(-1px)}@media (hover:hover) and (pointer:fine){.project-card:hover{transform:translateY(-2px)}.project-detail__close:hover{color:#111318}.portfolio-menu__button:hover{color:#202226;background:#ffffffe6;border-color:#fffffff0;transform:translateY(-1px)}.portfolio-menu__button:hover .portfolio-menu__label{opacity:1;transform:translateY(-50%)}.tabs-navigation__tab:hover{color:var(--color-text);background:#f6f6f6}.columns__item:hover{transform:translateY(-2px)}}@media (max-width:1100px){:root{--content-window-shift:0px}}@media (max-width:1000px) and (min-width:761px){.contact-stage__aside{flex-basis:250px;width:250px;padding:12px}.contact-stage__content{grid-template-rows:minmax(0,1fr) 42%;grid-template-columns:minmax(0,1fr)}.contact-stage__bottom{padding-block:20px 16px;padding-inline:22px}.contact-stage__footer-row{flex-wrap:wrap;gap:10px}.contact-stage__top-button{margin-left:0}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:760px){:root{--content-window-width:min(900px, calc(100vw - 24px), calc(150svh - 36px));--content-window-shift:0px;--global-navigation-size:50.4px;--global-navigation-gap:12px}.portfolio-menu__icon img{width:42px;height:42px}.scene-scale-target{place-items:center;overflow:hidden}.scene-scale-target>.screen{height:100%;min-height:0}.screen--tabs{padding-top:var(--layout-unit)}.hero__portrait,.hero__intro{padding:0}.hero__intro h2,.hero__bottom h2{margin-top:7px;font-size:clamp(16px,3.8vw,24px)}.hero__intro-description,.hero__bottom-description{font-size:10px}.hero__bottom{padding:0}.columns{overflow:hidden}.columns__item{flex:1 1 0;min-width:0;padding:14px 8px}.columns__label{font-size:clamp(18px,4vw,28px)}.columns__description,.columns__action{font-size:9px}.tabs-navigation__surface::-webkit-scrollbar{display:none}.tabs-navigation{top:var(--layout-unit);width:var(--content-window-width);height:68px}.tabs-navigation__surface{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;overflow-x:auto}.tabs-navigation__tab{scroll-snap-align:center;flex:0 0 132px;min-width:132px;padding-inline:10px;font-size:11px}.tabs-navigation__tab[aria-selected=true]{flex-basis:152px}.project-mosaic__layer[data-project-count]{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;padding:18px}.project-card__image{max-height:124px}.contact-stage{align-items:stretch;display:flex}.contact-stage__aside{flex-basis:31%;width:31%;height:auto;min-height:0;padding:12px}.contact-stage__aside h2,.contact-stage__bottom h2{font-size:clamp(18px,3.4vw,28px)}.contact-stage__description{font-size:10px;line-height:1.3}.contact-stage__facts dt,.contact-stage__facts dd{font-size:8px}.contact-stage__text-link{font-size:9px}.contact-stage__bottom h2{margin-top:0;font-size:clamp(12px,2.6vw,16px)}.contact-stage__email,.contact-stage__resume-link{font-size:clamp(10px,2.5vw,14px)}.contact-stage__contact-links{gap:4px;margin-top:7px}.contact-stage__content{grid-template-rows:minmax(0,1fr) 44%;grid-template-columns:minmax(0,1fr);width:auto;height:auto}.contact-stage__bottom{grid-column:1/-1;min-height:0;padding:16px}.contact-stage__footer-row{flex-direction:column;align-items:stretch;gap:6px}.contact-stage__socials{flex-wrap:nowrap;gap:7px}.contact-stage__legal-row{gap:7px;padding-top:5px}.contact-stage__socials a,.contact-stage__meta,.contact-stage__top-button{font-size:8px}.contact-stage__top-button{min-width:76px;margin-left:auto;padding:4px 10px}}@media (prefers-reduced-motion:reduce){.contact-qr-slider__slide,.contact-qr-slider__indicator span{transition:none}.portfolio-navigation{transition-duration:.18s;transition-timing-function:linear}.scene-motion-layer.is-transitioning,.scene-motion-layer.is-transitioning .scene-scale-target{animation-duration:.18s;animation-timing-function:linear}.scene-motion-layer.is-returning .scene-scale-target{transition-duration:.18s;transition-timing-function:linear}.tabs-navigation{transition-duration:.18s}.columns__item,.columns__action,.tabs-navigation__tab{transition-duration:.18s;transition-timing-function:linear}.project-mosaic__layer--incoming,.project-mosaic__layer--outgoing{animation-duration:.14s;animation-timing-function:linear}.project-mosaic__catalog,.project-detail{transition-duration:.18s;transition-timing-function:linear}.project-detail__image{animation-duration:.18s}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
