/*! tailwindcss v4.3.3 | 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)))){:root,:host{--shimmer-angle:20deg}*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-outline-style:solid;--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;--tw-duration:initial;--tw-ease:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-outline-style:solid;--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;--tw-duration:initial;--tw-ease:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-xs:4px;--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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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!important}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-50{z-index:50}.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}}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.\!table{display:table!important}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.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}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-transparent{border-color:#0000}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.grayscale{--tw-grayscale:grayscale(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))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--surface-01:#040d0f;--surface-02:#111618;--surface-03:#13191b;--surface-04:#969a9b;--surface-05:#767676;--surface-06:#e3e3e3;--surface-07:#f0f0f0;--surface-08:#fff;--text-muted-light:#6b6b6b;--north-yellow:#edff21;--north-green:#3cd888;--bg:var(--surface-01);--fg:var(--surface-08);--soft:var(--surface-04);--quiet:var(--surface-04);--line:var(--surface-03);--yellow:var(--north-yellow);--logo-ink:#fff;--logo-accent:var(--north-yellow);--customer-logo-ink:var(--surface-04);--contact-shimmer:var(--north-yellow);--toggle-bg:var(--surface-03);--toggle-hover:#20282a;--toggle-ink:var(--surface-07);--footer-face:var(--surface-03);--footer-edge:var(--surface-04);--footer-shadow:var(--surface-01);--surface:var(--surface-03);--surface-preview:var(--surface-03);--surface-feature-artwork:var(--surface-03);--project-preview-ratio:16 / 9;--project-icon-size:1.25rem;--project-icon-radius:30%;--surface-rwx:#f2f5f2;--surface-restate:#292245;--surface-plannr:#e8eff0;--ink-rwx:#17241b;--ink-plannr:#10244c;--ink-tinytimer:#201f18;--paperclip:#bfc0b7;--white:#fff;--brand-incident:#e94f37;--brand-plain:#1f7a57;--brand-maze:#1a252d;--brand-restate:#4c40cf;--brand-formopinion:#ee7094;--brand-wishlist:#e65f55;--brand-tinytimer:#d9b82d;--brand-overexplain:#e2703c;--brand-branch:#24231f;--type-body:1rem;--type-display:2rem;--type-display-small:1.75rem;--type-display-compact:1.5rem;--type-intro:1rem;--type-section:1.25rem;--type-row:.75rem;--type-row-title:1rem;--type-kicker:.75rem;--type-quote:1.125rem;--type-quote-featured:1.25rem;--type-attribution:.875rem;--type-tooltip:.625rem;--section-space:clamp(5rem, 12vw, 7rem);--layer-navigation:1300;--layer-lightbox:2100;--radius-icon:.44rem;--radius-card:6px;--radius-button:24px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--background:var(--bg);--foreground:var(--fg);--border:var(--line);--ring:var(--yellow)}:root[data-theme=light]{--bg:var(--surface-07);--fg:var(--surface-01);--soft:var(--text-muted-light);--quiet:var(--text-muted-light);--line:var(--surface-06);--yellow:var(--surface-01);--logo-ink:#040d0f;--logo-accent:var(--logo-ink);--customer-logo-ink:var(--surface-01);--contact-shimmer:var(--surface-01);--toggle-bg:var(--surface-06);--toggle-hover:#d8d8d8;--toggle-ink:var(--surface-01);--footer-face:var(--surface-03);--footer-edge:var(--surface-04);--footer-shadow:var(--surface-01);--surface:var(--surface-08);--surface-preview:var(--surface-08);--surface-feature-artwork:var(--surface-06)}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);color:var(--fg);font-family:var(--font-geist-sans), sans-serif;font-size:var(--type-body);transition:background-color .24s var(--ease-out), color .24s var(--ease-out);margin:0;line-height:1.5}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:none!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){animation:.56s cubic-bezier(.22,1,.36,1) both theme-diagonal-reveal;-webkit-mask-image:linear-gradient(135deg,#000 44%,#000000b8 49%,#0000 56%);mask-image:linear-gradient(135deg,#000 44%,#000000b8 49%,#0000 56%);-webkit-mask-size:250% 250%;mask-size:250% 250%}@keyframes theme-diagonal-reveal{0%{-webkit-mask-position:100% 100%;mask-position:100% 100%}to{-webkit-mask-position:0 0;mask-position:0 0}}.theme-transition-curtain{z-index:2000;pointer-events:none;-webkit-backdrop-filter:invert()hue-rotate(180deg)blur(1px);backdrop-filter:invert()hue-rotate(180deg)blur(1px);animation:.56s cubic-bezier(.22,1,.36,1) both theme-diagonal-hide;position:fixed;inset:0;-webkit-mask-image:linear-gradient(135deg,#000 44%,#000000b8 49%,#0000 56%);mask-image:linear-gradient(135deg,#000 44%,#000000b8 49%,#0000 56%);-webkit-mask-size:250% 250%;mask-size:250% 250%}@keyframes theme-diagonal-hide{0%{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:100% 100%;mask-position:100% 100%}}.glass-filter-defs{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}body:after{z-index:1000;content:"";pointer-events:none;background:linear-gradient(to bottom, transparent, var(--bg));height:clamp(7rem,22vh,16rem);position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){body:after{background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--bg) 14%, transparent))}}body:after{-webkit-backdrop-filter:url(#north-bottom-glass)blur(2px);backdrop-filter:url(#north-bottom-glass)blur(2px);-webkit-mask-image:linear-gradient(#0000 0%,#0003 35%,#000 100%);mask-image:linear-gradient(#0000 0%,#0003 35%,#000 100%)}a{color:inherit;text-decoration:none}.skip-link{z-index:3000;background:var(--fg);color:var(--bg);border-radius:6px;padding:12px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}.text-body{font-size:var(--type-body);line-height:1.5}.text-display{font-size:var(--type-display);letter-spacing:-.02em;font-weight:400;line-height:1.1}.text-display--small{font-size:var(--type-display-small)}.text-display--compact{font-size:var(--type-display-compact);line-height:1.2}.text-intro{font-size:var(--type-intro);line-height:1.5}.text-section{font-size:var(--type-section);letter-spacing:-.02em;font-weight:400;line-height:1.1}.text-row{font-size:var(--type-row);letter-spacing:.05em;line-height:1.5}.text-row-title{font-size:var(--type-row-title);letter-spacing:0;font-weight:500;line-height:1.5}.text-kicker{font-size:var(--type-kicker);letter-spacing:.05em;text-transform:uppercase;font-weight:400}.text-quote{font-size:var(--type-quote);letter-spacing:0;line-height:1.3}.text-quote--featured{font-size:var(--type-quote-featured);line-height:1.3}.text-attribution{font-size:var(--type-attribution);letter-spacing:0;line-height:1.5}.text-tooltip{font-size:var(--type-tooltip);line-height:1.35}main{--content-width:31.25rem;--page-top:clamp(4rem, 8vw, 5rem);width:min(calc(100% - 2rem), var(--content-width));padding-top:var(--page-top);margin-inline:auto}.masthead{--control-outset:100px;--control-edge:calc((100% - var(--content-width)) / 2 - var(--control-outset));height:2rem;margin-bottom:2.5rem}.masthead>:is(.wordmark,.theme-toggle){z-index:var(--layer-navigation);top:max(var(--page-top), env(safe-area-inset-top));position:fixed}.masthead>.wordmark{left:max(1rem, env(safe-area-inset-left), var(--control-edge))}.masthead>.theme-toggle{right:max(1rem, env(safe-area-inset-right), var(--control-edge))}.masthead>:is(.wordmark,.theme-toggle):before{content:"";position:absolute;inset:-6px}.wordmark{width:2rem;height:2rem;color:var(--logo-ink);display:block}.wordmark__mark{transform-origin:50% 60%;width:100%;height:100%;display:block}.wordmark svg{width:100%;height:100%;display:block}.north-mark__accent{fill:var(--logo-accent)}.theme-toggle{background:var(--toggle-bg);width:2rem;height:2rem;color:var(--toggle-ink);cursor:pointer;transition:background-color .18s var(--ease-out), color .18s var(--ease-out), transform .14s var(--ease-out);border:1px solid #0000;border-radius:99px;place-items:center;padding:0;display:grid}.theme-toggle svg{width:1rem;height:1rem;display:block}.theme-toggle:hover{background:var(--toggle-hover);color:var(--fg)}.theme-toggle:active{transform:scale(.97)}.intro{margin-bottom:5rem}.intro :is(h1,p){max-width:31.25rem;margin:0 0 1.25rem}.intro h1{text-wrap:balance;color:var(--fg)}.intro p{color:var(--soft)}.intro :is(h1,p),.intro .contact-link{opacity:0;animation:intro-in .52s var(--ease-out) forwards;transform:translateY(.45rem)}.intro p:nth-child(2){animation-delay:55ms}.intro p:nth-child(3){animation-delay:.11s}.intro .contact-link{animation-delay:.165s}.intro a{color:var(--fg);margin-top:.25rem;display:inline-block}.contact-link{transition:color .18s ease, background-size .22s var(--ease-out), transform .14s var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:100% 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:.08rem;position:relative}.contact-link--shimmer{background-image:none}.contact-link--shimmer:before{content:attr(data-shimmer);white-space:nowrap;pointer-events:none;color:#0000;background:linear-gradient(105deg, var(--contact-shimmer) 0%, var(--contact-shimmer) 40%, var(--surface-08) 47%, var(--surface-08) 53%, var(--contact-shimmer) 60%, var(--contact-shimmer) 100%);opacity:0;background-position:100% 0;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0 auto auto 0}.contact-link--shimmer:after{content:"";pointer-events:none;background:var(--contact-shimmer);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.contact-link.contact-link--shimmer:is(:hover,:focus-visible){color:var(--fg)}.contact-link--shimmer:is(:hover,:focus-visible):before{opacity:1;animation:.6s linear both contact-shimmer}.contact-link--shimmer:is(:hover,:focus-visible):after{animation:.6s cubic-bezier(.22,1,.36,1) both contact-underline}.contact-link:active{transform:scale(.97)}.copy-email{display:inline-block;position:relative}.copy-email__reveal{text-align:center;display:grid}.copy-email__reveal>span{grid-area:1/1}.copy-email__char{white-space:pre;transition:transform .26s var(--ease-out), opacity .18s var(--ease-out), filter .26s var(--ease-out);transition-delay:calc(var(--email-reveal-delay,0s) + var(--char-delay,0s) + var(--email-phase-delay,0s));display:inline-block}.copy-email__resting .copy-email__char{--email-phase-delay:60ms;filter:blur();opacity:1;transform:translate(0)}.copy-email__address .copy-email__char{--email-phase-delay:0s;filter:blur(3px);opacity:0;transform:translate(4px,6px)}.copy-email__reveal-button:focus-visible .copy-email__resting .copy-email__char{--email-phase-delay:0s;filter:blur(3px);opacity:0;transform:translate(-4px,-6px)}.copy-email__reveal-button:focus-visible .copy-email__address .copy-email__char{--email-phase-delay:60ms;filter:blur();opacity:1;transform:translate(0)}@media (hover:hover){.copy-email__reveal-button:hover .copy-email__resting .copy-email__char{--email-phase-delay:0s;filter:blur(3px);opacity:0;transform:translate(-4px,-6px)}.copy-email__reveal-button:hover .copy-email__address .copy-email__char{--email-phase-delay:60ms;filter:blur();opacity:1;transform:translate(0)}}@media (hover:none){.copy-email__reveal-button:focus .copy-email__resting .copy-email__char{--email-phase-delay:0s;filter:blur(3px);opacity:0;transform:translate(-4px,-6px)}.copy-email__reveal-button:focus .copy-email__address .copy-email__char{--email-phase-delay:60ms;filter:blur();opacity:1;transform:translate(0)}}.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-ink:var(--surface-08);--button-fill:var(--surface-02);--button-hover-fill:var(--surface-03);--button-highlight:var(--surface-08)}@supports (color:color-mix(in lab, red, red)){.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-highlight:color-mix(in srgb, var(--surface-08) 4%, transparent)}}.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-hover-highlight:var(--surface-08)}@supports (color:color-mix(in lab, red, red)){.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-hover-highlight:color-mix(in srgb, var(--surface-08) 6%, transparent)}}.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-shadow:var(--surface-01)}@supports (color:color-mix(in lab, red, red)){.north-button,:root[data-theme=light] .north-button[data-light-variant=north]{--button-shadow:color-mix(in srgb, var(--surface-01) 50%, transparent)}}.north-button--white,:root[data-theme=light] .north-button[data-light-variant=north-white]{--button-ink:var(--surface-01);--button-fill:var(--surface-08);--button-hover-fill:var(--surface-08);--button-highlight:var(--surface-08);--button-hover-highlight:var(--surface-08);--button-shadow:var(--surface-01)}@supports (color:color-mix(in lab, red, red)){.north-button--white,:root[data-theme=light] .north-button[data-light-variant=north-white]{--button-shadow:color-mix(in srgb, var(--surface-01) 12%, transparent)}}.north-button{--fg:var(--button-ink);--button-padding-y:.875rem;--button-padding-x:1.5rem;min-height:44px;padding:var(--button-padding-y) var(--button-padding-x);isolation:isolate;border-radius:var(--radius-button);background-color:var(--button-fill);color:var(--button-ink);font:inherit;text-align:left;cursor:pointer;transform-origin:50%;box-shadow:inset 0 1px 0 var(--button-highlight), inset 0 -1px 0 var(--button-shadow);transition:background-color .22s var(--ease-out), box-shadow .22s var(--ease-out), scale .22s var(--ease-out), translate .22s var(--ease-out);background-image:none;border:0;margin-top:.25rem;line-height:1.5;display:inline-block;overflow:hidden;translate:0;scale:1}.north-button[data-size=md]{--button-padding-y:10px;--button-padding-x:20px;height:auto;min-height:44px;font-size:14px;line-height:20px}.north-button[data-size=sm]{--button-padding-y:8px;--button-padding-x:16px;height:auto;min-height:36px;font-size:12px;line-height:20px}.north-button:is([data-size=md],[data-size=sm]){justify-content:center;align-items:center;display:inline-flex}.north-button:after{display:none}.north-button:is(:hover,:focus-visible){background-color:var(--button-hover-fill);color:var(--button-ink);box-shadow:inset 0 1px 0 var(--button-hover-highlight), inset 0 -1px 0 var(--button-shadow)}.north-button:active{transition-duration:.12s;transform:scale(.99)translate(0)}.index-section{padding-block:var(--section-space)}.fragment-section{--fragment-gap:32px;cursor:grab;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;width:100vw;margin-bottom:clamp(2.5rem,7vw,4rem);margin-left:50%;margin-right:50%;padding-top:.65rem;position:relative;overflow:hidden;transform:translate(-50%)}.fragment-section:before,.fragment-section:after{--fragment-edge-direction:right;z-index:1;content:"";pointer-events:none;-webkit-backdrop-filter:url(#north-bottom-glass)blur(2px);backdrop-filter:url(#north-bottom-glass)blur(2px);width:clamp(1.5rem,4vw,4rem);-webkit-mask-image:linear-gradient(to var(--fragment-edge-direction), #000 0%, #000 12%, #0009 50%, transparent);-webkit-mask-image:linear-gradient(to var(--fragment-edge-direction), #000 0%, #000 12%, #0009 50%, transparent);-webkit-mask-image:linear-gradient(to var(--fragment-edge-direction), #000 0%, #000 12%, #0009 50%, transparent);-webkit-mask-image:linear-gradient(to var(--fragment-edge-direction), #000 0%, #000 12%, #0009 50%, transparent);mask-image:linear-gradient(to var(--fragment-edge-direction), #000 0%, #000 12%, #0009 50%, transparent);position:absolute;inset-block:0}.fragment-section:before{left:0}.fragment-section:after{--fragment-edge-direction:left;right:0}.fragment-section[data-dragging=true]{cursor:grabbing}.fragment-section[data-dragging=true] figure{transition:none;transform:none}.fragment-section[data-runner-active=true]{cursor:default}.fragment-track{width:max-content;animation:140s linear infinite fragment-loop;display:flex}.fragment-section[data-suspended=true] .fragment-track{animation-play-state:paused}.fragment-sequence{gap:var(--fragment-gap);padding-right:var(--fragment-gap);flex:none;display:flex}.fragment-sequence figure{background:0 0;flex:none;height:clamp(12rem,15vw,18rem);margin:0;transition:transform .48s cubic-bezier(.22,1.15,.36,1);position:relative;overflow:hidden}.fragment-sequence img{object-fit:contain;object-position:center;width:100%;height:100%;display:block;position:absolute;inset:0}.gallery-arcade-sprite{z-index:calc(var(--layer-navigation) + 1);pointer-events:none;opacity:0;position:fixed;top:0;left:0}.gallery-arcade-sprite__frame{width:100%;height:100%;image-rendering:pixelated;transform-origin:50%;background:url(/gallery-arcade-sprites.png) 0 0/300% 200% no-repeat}.gallery-turret .gallery-arcade-sprite__frame{background-position:50% 100%}.gallery-arcade-effects{z-index:calc(var(--layer-navigation) + 1);pointer-events:none;width:100%;height:100%;position:fixed;inset:0;overflow:hidden}.gallery-arcade-shot{fill:var(--north-yellow);stroke:var(--surface-01);stroke-width:1px}.gallery-arcade-pixel{fill:var(--north-yellow);shape-rendering:crispedges}.gallery-arcade-pixel:nth-child(3n){fill:var(--surface-06)}.gallery-grapple__rope,.gallery-grapple__rope-shadow{fill:none;stroke-linecap:round;stroke-linejoin:round}.gallery-grapple__rope-shadow{stroke:var(--surface-02);stroke-width:3px;opacity:.2}.gallery-grapple__rope{stroke:var(--surface-02);stroke-width:2px}.gallery-grapple__launcher{fill:var(--surface-06);stroke:var(--surface-01);stroke-width:1px;shape-rendering:crispedges}.gallery-grapple__sleeve,.gallery-grapple__stripe,.gallery-grapple__spark{fill:var(--north-yellow)}.gallery-grapple__hook{fill:none;stroke:var(--surface-08);stroke-width:2px;stroke-linejoin:miter;paint-order:stroke}.gallery-game{z-index:calc(var(--layer-navigation) + 2);clip-path:inset(50%);border:0;width:1px;min-width:0;height:1px;margin:0;padding:0;position:fixed;bottom:0;left:0;overflow:hidden}.gallery-game:focus{outline:none}.gallery-game__announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.gallery-game button{border:1px solid var(--line);background:var(--bg);min-width:2.75rem;min-height:2.75rem;color:var(--fg);font:inherit;cursor:pointer;touch-action:none;border-radius:.35rem;padding:.35rem .65rem;font-size:1rem}.gallery-game button:active{background:var(--toggle-hover)}.gallery-game__touch{gap:.35rem;display:none}.gallery-game[data-finished=true] .gallery-game__touch,.gallery-game[data-paused=true] .gallery-game__touch{display:none}@media (pointer:coarse){.theme-toggle{width:44px;height:44px}.gallery-game{left:50%;bottom:max(1.25rem, env(safe-area-inset-bottom));clip-path:none;width:max-content;height:auto;overflow:visible;transform:translate(-50%)}.gallery-game__touch{display:flex}}.portfolio-section{padding-top:clamp(4rem,10vw,6rem)}.section-kicker{color:var(--soft);margin:0 0 2.5rem}.rows{--project-preview-close-duration:.22s;--project-preview-open-duration:.44s;--project-artwork-enter-duration:.36s;--project-artwork-enter-delay:.14s;border-top:1px solid var(--line)}.rows[data-preview-switching=true]{--project-preview-close-duration:.28s;--project-preview-open-duration:.28s;--project-artwork-enter-duration:.22s;--project-artwork-enter-delay:60ms}.row{grid-template-columns:var(--project-icon-size) 7.25rem minmax(0, 1fr) auto;border-bottom:1px solid var(--line);isolation:isolate;min-height:3rem;transition:opacity .18s ease, transform .14s var(--ease-out);align-items:center;gap:.75rem;padding-block:.75rem;display:grid;position:relative}.work-preview{opacity:0;transition:grid-template-rows var(--project-preview-close-duration) cubic-bezier(.22, 1, .36, 1), opacity .16s var(--ease-out);grid-template-rows:0fr;display:grid}.work-preview__clip{min-height:0;overflow:hidden}.work-preview__media{width:100%;height:auto;min-height:0;aspect-ratio:var(--project-preview-ratio);background:var(--surface-preview);border-radius:0 0 6px 6px;place-items:center;margin:0;display:grid;position:relative;overflow:hidden}.work-preview__media>img{object-fit:cover;object-position:center;width:100%;height:100%;display:block;position:absolute;inset:0}.work-preview__link{border-radius:inherit;cursor:pointer;position:absolute;inset:0}.work-preview__link:focus-visible{outline-offset:-4px}.portfolio-section[data-project-navigation=website] .work-preview :is(.work-preview__clip,.work-preview__media){border-radius:var(--radius-card)}.work-preview__placeholder{color:var(--fg);letter-spacing:-.045em;place-items:center;gap:1rem;font-size:clamp(1.5rem,4vw,2.4rem);display:grid}.work-preview__placeholder img{border-radius:var(--project-icon-radius);object-fit:contain;width:3.5rem;height:3.5rem;display:block}.work-preview__media:is(.work-preview__media--incident,.work-preview__media--plain,.work-preview__media--rwx,.work-preview__media--maze,.work-preview__media--restate){background:var(--surface-feature-artwork)}.work-preview__media:is(.work-preview__media--incident,.work-preview__media--plain,.work-preview__media--rwx,.work-preview__media--maze,.work-preview__media--restate)>img{object-fit:contain}@media (prefers-reduced-motion:no-preference){.portfolio-item .work-preview__media:is(.work-preview__media--incident,.work-preview__media--plain,.work-preview__media--rwx,.work-preview__media--maze,.work-preview__media--restate)>img{opacity:0;transition:opacity .16s var(--ease-out), transform .22s var(--ease-out);transform:translateY(16px)scale(.96)}.portfolio-item[data-preview-open=true] .work-preview__media:is(.work-preview__media--incident,.work-preview__media--plain,.work-preview__media--rwx,.work-preview__media--maze,.work-preview__media--restate)>img{opacity:1;transition-duration:var(--project-artwork-enter-duration);transition-delay:var(--project-artwork-enter-delay);transform:translateY(0)scale(1)}.portfolio-item[data-project-open=true] .work-preview__media:is(.work-preview__media--incident,.work-preview__media--plain,.work-preview__media--rwx,.work-preview__media--maze,.work-preview__media--restate)>img{transition:none}}.work-preview__media--rwx{background:var(--surface-rwx);color:var(--ink-rwx)}.work-preview__media--restate{background:var(--surface-restate)}.work-preview__media--plannr{background:var(--surface-plannr);color:var(--ink-plannr)}.work-preview__media--rwx .work-preview__placeholder,.work-preview__media--plannr .work-preview__placeholder{color:inherit}.portfolio-item[data-preview-open=true] .work-preview{opacity:1;transition-duration:var(--project-preview-open-duration), .22s;grid-template-rows:1fr}.portfolio-item[data-project-open=true] .work-preview{opacity:1;grid-template-rows:1fr;transition:none}.portfolio-section[data-lightbox-active=true] .work-preview{transition:none}.client-icon{width:1.25rem;height:1.25rem;color:var(--white);letter-spacing:-.02em;transition:transform .18s var(--ease-out), box-shadow .18s ease;border:1px solid #ffffff17;border-radius:.25rem;place-items:center;font-size:9px;font-weight:680;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff14}.client-icon img{object-fit:contain;width:100%;height:100%;display:block}.client-icon--incident{background:var(--brand-incident)}.client-icon--plain{background:var(--brand-plain);box-shadow:none;border-color:#0000}.client-icon--maze{background:var(--brand-maze)}.client-icon--rwx{background:var(--white)}.client-icon--restate{background:var(--brand-restate)}.client-icon--plannr{background:var(--white)}.client-icon--branch{background:var(--brand-branch)}.client-icon--impala{background:var(--white)}.client-icon--figma,.client-icon--formopinion,.client-icon--wishlist,.client-icon--tinytimer,.client-icon--finalpass,.client-icon--overexplain{box-shadow:none;background:0 0;border:0;border-radius:0}.row>.client-icon{width:var(--project-icon-size);height:var(--project-icon-size);border-radius:var(--project-icon-radius);box-shadow:none;background:0 0;border:0;padding:0;position:relative}.row>.client-icon--formopinion img{transform:scale(1.15)}.row>.client-icon:not(.client-icon--figma):after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff14,#0000 79%);position:absolute;inset:0;box-shadow:inset 0 1px #ffffff40}.row strong{font-size:var(--type-row-title);letter-spacing:0;font-weight:500;line-height:1.5}.row>span:not(.client-icon):not(.row-action){color:var(--soft);transition:color .16s var(--ease-out)}.row .row-action{color:var(--fg);white-space:nowrap;transition:color .16s var(--ease-out), transform .22s var(--ease-out);padding-left:16px;position:relative;transform:translate(0)}.row-action:after{content:"";opacity:0;pointer-events:none;width:6px;height:6px;transition:opacity .16s var(--ease-out), transform .22s var(--ease-out);border-top:1.5px solid;border-right:1.5px solid;position:absolute;top:50%;right:-14px;transform:translate(-4px,-50%)rotate(45deg)}.portfolio-item:not([data-coming-soon]):is(:hover,:has(:focus-visible)) .row-action{color:var(--north-yellow);transform:translate(-16px)}.portfolio-item:not([data-coming-soon]):is(:hover,:has(:focus-visible)) .row-action:after{opacity:1;transform:translateY(-50%)rotate(45deg)}:root[data-theme=light] .portfolio-item:not([data-coming-soon]):is(:hover,:has(:focus-visible)) .row-action,:root[data-theme=light] .portfolio-item:not([data-coming-soon]):is(:hover,:has(:focus-visible)) .row>span:not(.client-icon):not(.row-action){color:var(--surface-01)}.portfolio-item[data-coming-soon] .row-action{color:var(--soft)}.portfolio-item[data-coming-soon] .row-action:after{display:none}.row time{color:var(--quiet);font-variant-numeric:tabular-nums;letter-spacing:.05em}.row i{color:var(--quiet);opacity:0;transition:opacity .14s ease, transform .16s var(--ease-out);font-style:normal;position:absolute;right:-1rem;transform:translate(-.18rem,.18rem)}:is(a.row:hover i,a.row:focus-visible i){opacity:1;transform:translate(.12rem,-.12rem)}.rows:has(>.portfolio-item:hover)>.portfolio-item:not(:hover):not(:has(:focus-visible))>.row{opacity:.5}a.row:active{transform:scale(.99)}.prose>p{color:var(--soft);margin:0 0 1.15rem}.prose>h2,.prose>.practice-introduction{color:var(--fg);margin:0 0 2rem}.practice-story{color:var(--soft);margin-top:2rem}.practice-story p{margin:0 0 1.25rem}.practice-story p:last-child{margin-bottom:0}.scroll-reveal__paragraph{position:relative}.scroll-reveal__measure{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;top:0;display:block;position:absolute;inset-inline:0}.scroll-reveal__word{vertical-align:baseline;white-space:nowrap;display:inline-block}.scroll-reveal__measure-baseline{vertical-align:baseline;width:0;height:0;display:inline-block}.scroll-reveal__text,.scroll-reveal__line,.scroll-reveal__ink{display:block}.scroll-reveal__line{white-space:nowrap}.scroll-reveal[data-reveal=scroll] .scroll-reveal__line{overflow:hidden}.scroll-reveal[data-reveal=scroll] .scroll-reveal__ink{opacity:var(--line-reveal,0);filter:blur(calc((1 - var(--line-reveal,0)) * 8px));transform:translateY(calc((1 - var(--line-reveal,0)) * 35%))}.scroll-reveal[data-reveal=scroll] .scroll-reveal__line:focus-within{overflow:visible}.scroll-reveal[data-reveal=scroll] .scroll-reveal__line:focus-within .scroll-reveal__ink{opacity:1;filter:none;transform:none}.story-mention{white-space:nowrap}.story-icon{object-fit:contain;vertical-align:-.18em;width:20px;max-width:none;height:20px;display:inline-block}.story-icon--bella{vertical-align:-.23em;width:24px;height:24px;transform:translateY(2px)}.story-emoji{vertical-align:-.08em;font-size:20px;line-height:1;display:inline-block}.story-ai-icons{isolation:isolate;vertical-align:-.18em;align-items:center;display:inline-flex}.story-icon--rounded,.story-ai-icons .story-icon{border-radius:5px}.story-ai-icons .story-icon{box-sizing:border-box;box-shadow:0 0 0 1.5px var(--bg)}.story-ai-icons .story-icon+.story-icon{margin-left:-5px}.story-ai-icons__claude{z-index:1;background:#f4eee4;padding:2px}.story-ai-icons__chatgpt{z-index:2;background:#fff;padding:2px}.story-ai-icons__codex{z-index:3;background:#fff}.story-easter-egg{-webkit-appearance:none;appearance:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:2px;margin:0;padding:0;text-decoration:none;display:inline}.story-easter-egg:focus-visible{outline-offset:3px;color:var(--fg);outline:2px solid}.story-easter-egg__emoji{vertical-align:-.08em;transform-origin:50% 75%;animation:story-egg-pop .34s var(--ease-out) both;font-size:1.1em;line-height:1;display:inline-block}@keyframes story-egg-pop{0%{opacity:0;transform:translateY(4px)rotate(-20deg)scale(.3)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.testimonials{--scatter-selection:var(--north-yellow);--scatter-handle-fill:var(--bg);--card-bin-bottom:2rem;width:calc(100vw - 2rem);height:var(--testimonials-height,34rem);perspective:1100px;margin-top:clamp(4rem,9vw,7rem);margin-left:50%;position:relative;transform:translate(-50%)}:root[data-theme=light] .testimonials{--scatter-selection:var(--surface-01);--scatter-handle-fill:var(--surface-08)}.testimonial{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--fg);grid-template-columns:7rem minmax(0,1fr);align-items:start;gap:1.5rem;margin:0;padding:1.5rem;display:grid;position:relative}.testimonials .scatter-card,.footer-cta,.marker-tooltip,.project-lightbox{--card-outline:#ffffff0f}.testimonials .scatter-card,.footer-cta,.marker-tooltip{outline:1px solid var(--card-outline);outline-offset:-1px;background:var(--surface);color:var(--fg);box-shadow:none;border:1px solid #0000}:root[data-theme=light] :is(.testimonials .scatter-card,.footer-cta,.marker-tooltip,.project-lightbox){--card-outline:#00000014}.testimonials .scatter-card{transform-origin:50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute}.testimonials .testimonial{grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;width:clamp(22rem,34vw,28rem);padding:1.1rem}.testimonials .scatter-card:first-child{--rest-angle:-6deg;z-index:1;transform:rotate(var(--rest-angle));top:5%;left:5%}.testimonials .scatter-card:nth-child(2){--rest-angle:4deg;z-index:2;transform:rotate(var(--rest-angle));top:7%;left:min(57%,100% - 28rem)}.testimonials .scatter-card:nth-child(3){--rest-angle:-4deg;z-index:3;transform:rotate(var(--rest-angle));top:9%;left:43%}.testimonials .scatter-card:nth-child(4){--rest-angle:9deg;z-index:4;top:var(--testimonials-lower-top,21.5rem);transform:rotate(var(--rest-angle));left:11%}.testimonials .scatter-card:nth-child(5){--rest-angle:-8deg;z-index:5;top:var(--testimonials-lower-top,21.5rem);transform:rotate(var(--rest-angle));left:min(57%,100% - 28rem)}@media (min-width:1200px){.testimonials .scatter-card:first-child{left:calc(50% - 32rem)}.testimonials .scatter-card:nth-child(2){left:calc(50% + 8rem)}.testimonials .scatter-card:nth-child(3){left:calc(50% - 5rem)}.testimonials .scatter-card:nth-child(4){left:calc(50% - 28rem)}.testimonials .scatter-card:nth-child(5){left:calc(50% + 8rem)}}.testimonials .scatter-card[data-dragging=true]{cursor:grabbing;transform:translateZ(32px) rotate(var(--rest-angle)) scale(1.025)}.testimonials .scatter-card[data-resizing=true]{cursor:ew-resize}.testimonials .scatter-card[data-crumpling=true]{pointer-events:none}.paper-crumple-stage{z-index:1200;pointer-events:none;display:block;position:fixed}.testimonials .scatter-card[data-crumpling=true]:after,.testimonials .scatter-card[data-crumpling=true] .scatter-card-anchors{opacity:0}.testimonials .scatter-card[data-incoming]{animation:.72s cubic-bezier(.22,1,.36,1) .14s both card-deal}.testimonials[data-scatter=waiting] .scatter-card{opacity:0}.card-bin{z-index:1000;bottom:var(--card-bin-bottom);width:2.75rem;height:2.75rem;color:var(--surface-08);-webkit-backdrop-filter:blur(8px)saturate(1.12);backdrop-filter:blur(8px)saturate(1.12);opacity:0;pointer-events:none;transition:opacity .22s var(--ease-out) .18s, transform .28s cubic-bezier(.22, 1, .36, 1) .18s, background-color .18s var(--ease-out), border-color .18s var(--ease-out), box-shadow .18s var(--ease-out);background-color:#dce9ea1a;background-image:radial-gradient(circle at 30% 20%,#ffffff14,#0000 58%),radial-gradient(circle at 78% 84%,#030b0d14,#0000 65%);border:1px solid #e0ecee52;border-radius:50%;place-items:center;display:grid;position:absolute;left:50%;transform:translate(-50%,1rem)scale(.8);box-shadow:0 .45rem 1.25rem #00000024,inset 1px 1px 2px #ffffff29,inset -2px -3px 6px #030b0d1f}.card-bin:before,.card-bin:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}.card-bin:before{z-index:1;opacity:0;background:linear-gradient(110deg,#0000 33%,#f9feff04 39%,#f9feff12 45%,#f9feffb8 50%,#f9feff12 55%,#f9feff04 61%,#0000 67%) 100% 0/250% 100% no-repeat;-webkit-mask-image:radial-gradient(circle closest-side,#0000000b 0%,#0000000e 64%,#00000038 78%,#000000b3 86%,#000000d1 92% 97%,#0000 100%);mask-image:radial-gradient(circle closest-side,#0000000b 0%,#0000000e 64%,#00000038 78%,#000000b3 86%,#000000d1 92% 97%,#0000 100%)}.card-bin:after{-webkit-backdrop-filter:blur(2px)saturate(1.06);backdrop-filter:blur(2px)saturate(1.06);-webkit-mask-image:radial-gradient(circle closest-side,#0000 50%,#000000b3 65%,#000 82% 93%,#0000 100%);mask-image:radial-gradient(circle closest-side,#0000 50%,#000000b3 65%,#000 82% 93%,#0000 100%)}.card-bin svg{z-index:1;width:1rem;height:1rem;position:relative}.card-bin[data-hoop-active=true]{visibility:hidden;opacity:0;transition:none}.card-bin-hint{z-index:1000;left:50%;bottom:calc(var(--card-bin-bottom) + 1.375rem - 44px);width:88px;height:88px;color:var(--soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;pointer-events:none;-webkit-user-select:none;user-select:none;visibility:hidden;opacity:0;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out), visibility 0s .18s;font-size:10px;font-weight:500;position:absolute;transform:translate(-50%,.25rem)}.card-bin-hint svg{width:100%;height:100%;display:block;overflow:visible}.card-bin-hint[data-visible=true]{visibility:visible;opacity:1;transition-duration:.24s,.24s,0s;transition-delay:0s;transform:translate(-50%)}:root[data-theme=light] .card-bin{color:var(--surface-01);-webkit-backdrop-filter:blur(7px)saturate(1.02);backdrop-filter:blur(7px)saturate(1.02);background-color:#ffffff14;background-image:radial-gradient(circle at 30% 18%,#ffffff29,#0000 56%),radial-gradient(circle at 76% 84%,#ffffff0a,#0000 65%);border-color:#ffffffe0;box-shadow:0 0 0 1px #040d0f12,inset 0 1px #ffffffeb,inset 0 -1px #ffffff61}:root[data-theme=light] .card-bin:before{background-image:linear-gradient(110deg,#0000 33%,#ffffff04 39%,#ffffff12 45%,#ffffffb8 50%,#ffffff12 55%,#ffffff04 61%,#0000 67%)}:root[data-theme=light] .card-bin:after{-webkit-backdrop-filter:blur(2px)saturate(1.02);backdrop-filter:blur(2px)saturate(1.02)}.card-bin--visible{opacity:1;transition-delay:0s;transform:translate(-50%)scale(1)}.card-bin--visible:before{animation:6s ease-in-out infinite card-bin-rim-shimmer}.testimonials:has(.scatter-card:is(:hover,:focus-within))>.card-bin:before{animation:6s ease-in-out infinite card-bin-rim-shimmer}.card-bin--hot{background-color:#dce9ea29;border-color:#f0f9f98f;transform:translate(-50%)scale(1.08);box-shadow:0 .5rem 1.25rem #00000029,inset 1px 1px 2px #fff3,inset -2px -3px 6px #030b0d24}.card-bin--hot:after{-webkit-backdrop-filter:blur(3px)saturate(1.08);backdrop-filter:blur(3px)saturate(1.08)}:root[data-theme=light] .card-bin--hot{background-color:#ffffff29;border-color:#fffffff5;box-shadow:0 0 0 1px #040d0f1f,inset 0 1px #fff,inset 0 -1px #ffffff7a}.testimonials:has(.scatter-card:is(:hover,:focus-within))>.card-bin:not(.card-bin--hot):not([data-hoop-active=true]){opacity:1;transition-delay:0s;transform:translate(-50%)scale(1)}@keyframes card-bin-rim-shimmer{0%{opacity:0;background-position:100% 0}4%{opacity:.5}20%{opacity:.5;background-position:0 0}24%,to{opacity:0;background-position:0 0}}@keyframes card-deal{0%{opacity:0;transform:translate3d(0, 2rem, -80px) rotate(calc(var(--rest-angle) - 8deg)) scale(.72)}70%{opacity:1;transform:translate3d(0, -.35rem, 18px) rotate(calc(var(--rest-angle) + 2deg)) scale(1.035)}to{opacity:1;transform:translate3d(0, 0, 0) rotate(var(--rest-angle)) scale(1)}}.testimonials .testimonial--brush{grid-template-columns:6.5rem minmax(0,1fr)}.testimonials .testimonial-portrait{width:5.5rem}.testimonials .testimonial-portrait--brush{width:6.5rem}.testimonial-logo-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:12rem;height:5.5rem;color:var(--customer-logo-ink);justify-content:center;align-items:center;padding:1.25rem;display:flex}.testimonial-logo-card__mark{pointer-events:none;max-width:100%;height:auto;max-height:2rem;display:block}.customer-logo--heading{pointer-events:none;max-width:100%;height:auto;display:block}.scatter-card-keyboard{z-index:8;border:1px solid var(--soft);background:var(--surface);width:32px;height:32px;color:var(--fg);opacity:0;pointer-events:none;cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:20px;display:grid;position:absolute;bottom:6px;right:6px}.scatter-card:is(:hover,:focus-within) .scatter-card-keyboard:not(.scatter-card-keyboard--logo){opacity:1;pointer-events:auto}.testimonial-logo-control{border-radius:var(--radius-icon);flex:none;width:1.9rem;height:1.9rem;display:inline-grid;position:relative}.scatter-card-keyboard--logo{border-radius:inherit;pointer-events:auto;width:100%;height:100%;transition:opacity .14s var(--ease-out);border:0;inset:0}.scatter-card-keyboard--logo:is(:hover,:focus-visible){opacity:1}.scatter-card:after{z-index:6;content:"";border:2px solid var(--scatter-selection);opacity:0;pointer-events:none;transition:opacity .14s var(--ease-out);border-radius:8px;position:absolute;inset:-2px}.scatter-card-anchors{z-index:7;opacity:0;pointer-events:none;transition:opacity .14s var(--ease-out);position:absolute;inset:-7px}.scatter-card-anchors--decorative{display:none}.scatter-card-anchor{cursor:ew-resize;pointer-events:none;touch-action:none;background:0 0;border:0;width:24px;height:24px;padding:0;position:absolute}.scatter-card-anchor:before{border:2px solid var(--scatter-selection);background:var(--scatter-handle-fill);content:"";border-radius:1px;position:absolute;inset:6px}.scatter-card-anchor:first-child{top:-6px;left:-6px}.scatter-card-anchor:nth-child(2){top:-6px;right:-6px}.scatter-card-anchor:nth-child(3){bottom:-6px;right:-6px}.scatter-card-anchor:nth-child(4){bottom:-6px;left:-6px}.testimonials .scatter-card:is(:hover,:focus-within,[data-dragging=true],[data-resizing=true]):after,.testimonials .scatter-card:is(:hover,:focus-within,[data-dragging=true],[data-resizing=true]) .scatter-card-anchors{opacity:1}.testimonials .scatter-card:is(:hover,:focus-within,[data-resizing=true]) .scatter-card-anchor{pointer-events:auto}.testimonials .scatter-card .scatter-card-anchors--decorative .scatter-card-anchor{pointer-events:none;cursor:inherit;touch-action:auto}.testimonials__refresh{display:none}@keyframes testimonials-refresh-out{0%{opacity:1}to{opacity:0}}@keyframes testimonials-refresh-in{0%{opacity:0}to{opacity:1}}@keyframes testimonials-refresh-turn{to{transform:rotate(360deg)}}blockquote footer{color:var(--soft);margin-top:.8rem}.testimonial-copy{white-space:pre-line;overflow-wrap:anywhere}.testimonial-identity{flex-direction:column;justify-content:space-between;align-self:stretch;align-items:flex-start;gap:1.5rem;min-width:0;display:flex}.testimonial-portrait{width:7rem;margin:0;position:relative}.testimonial-portrait>img{aspect-ratio:1;object-fit:cover;border-radius:.15rem;width:100%;height:auto;display:block}.testimonial--brush{grid-template-columns:9rem minmax(0,1fr)}.testimonial-portrait--brush{width:9rem}.testimonial-portrait--brush>img{filter:grayscale();border-radius:0}:root[data-theme=light] .testimonial-portrait--brush>img{filter:grayscale()contrast(1.18);mix-blend-mode:multiply}.portrait-badge{border-radius:var(--radius-icon);width:1.9rem;height:1.9rem;box-shadow:none;flex:none;transform:none}.portrait-badge.client-icon--plain{box-shadow:none;border:0}.marker-word{position:relative}.marker-word__trigger{isolation:isolate;color:var(--fg);font:inherit;vertical-align:baseline;cursor:help;background:0 0;border:0;margin:0;padding:0;display:inline-block;position:relative}.marker-word__ink{z-index:-1;color:var(--north-yellow);pointer-events:none;position:absolute;inset:.03em -.15em;transform:rotate(-1.5deg)}.marker-word__pass,.marker-word__print{--marker-start:inset(0 100% 0 0);pointer-events:none;position:absolute;inset:0;overflow:hidden}.marker-word__pass--return{--marker-start:inset(0 0 0 100%)}.marker-word__layer{width:100%;height:100%;display:block}.marker-word__print{color:var(--surface-01)}.marker-word[data-marker=waiting] :is(.marker-word__pass,.marker-word__print){clip-path:var(--marker-start)}.marker-word[data-marker=drawn] :is(.marker-word__pass,.marker-word__print){animation:.46s cubic-bezier(.35,0,.65,1) .1s both marker-swipe}.marker-word[data-marker=drawn] .marker-word__pass--return{animation-duration:.38s;animation-delay:.6s}@keyframes marker-swipe{0%{clip-path:var(--marker-start)}to{clip-path:inset(0)}}.tooltip{z-index:5;visibility:hidden;border:1px solid var(--line);background:var(--surface);width:max-content;max-width:min(17rem,78vw);color:var(--fg);font-size:var(--type-tooltip);opacity:0;pointer-events:none;transform-origin:50% 100%;transition:visibility 0s linear .16s, opacity .16s ease, transform .16s var(--ease-out);border-radius:.3rem;padding:.45rem .6rem;line-height:1.35;position:absolute;bottom:calc(100% + .65rem);left:50%;transform:translate(-50%,.2rem)scale(.97);box-shadow:0 .5rem 1.5rem #00000047}.marker-tooltip-positioner{z-index:calc(var(--layer-navigation) + 1)}.marker-tooltip-positioner[data-anchor-hidden]{visibility:hidden}.marker-tooltip{width:260px;max-width:min(calc(100vw - 32px), var(--available-width));max-height:var(--available-height);border-radius:var(--radius-card);opacity:1;transform-origin:var(--transform-origin);transition:opacity .18s var(--ease-out), transform .18s var(--ease-out);padding:6px;overflow:auto;transform:translateY(0)scale(1)}.marker-tooltip[data-starting-style],.marker-tooltip[data-ending-style]{opacity:0;transform:translateY(4px)scale(.97)}.marker-tooltip[data-side=bottom]:is([data-starting-style],[data-ending-style]){transform:translateY(-4px)scale(.97)}.marker-tooltip[data-instant]{transition:none}.marker-tooltip__image{aspect-ratio:1.1;object-fit:cover;object-position:50% 70%;border-radius:3px;width:100%;height:auto;display:block}.marker-tooltip__copy{gap:6px;padding:10px;display:grid}.marker-tooltip--media .marker-tooltip__copy{padding-top:14px}.marker-tooltip__label{color:var(--soft);font-size:.75rem;font-weight:400;line-height:1.4}.marker-tooltip__title{letter-spacing:-.015em;text-wrap:balance;max-width:19ch;font-size:1rem;font-weight:500;line-height:1.3}.copy-email__feedback-positioner{z-index:calc(var(--layer-navigation) + 2);pointer-events:none;width:max-content;padding-bottom:.65rem;position:fixed;top:0;left:0;transform:translateY(-100%)}.copy-email__feedback{white-space:nowrap;transition:visibility 0s linear .22s, opacity .22s var(--ease-out), transform .22s var(--ease-out);border-radius:999px;display:block;position:relative;bottom:auto;left:0;transform:translate(-50%,8px)scale(.96)}.copy-email__feedback[data-state=visible]{visibility:visible;opacity:1;transition:visibility 0s, opacity .18s var(--ease-out), transform .38s cubic-bezier(.2, 1.25, .32, 1);transform:translate(-50%)scale(1)}.copy-email__feedback[data-state=leaving]{transform:translate(-50%,-4px)scale(.985)}.footer{--footer-cta-gap:clamp(12rem, 28vw, 16rem);padding-top:calc(var(--footer-cta-gap) - var(--section-space));padding-bottom:0;position:relative}.footer p{color:var(--soft);margin:0 0 .45rem}.footer h2{color:var(--fg);text-wrap:balance;margin:0 0 1.25rem}.footer-cta-scene{isolation:isolate;position:relative;container:footer-cta/inline-size}.footer-cta__confetti{pointer-events:none;width:100%;height:calc(100% + 248px);position:absolute;top:-224px;left:0}.footer-cta__confetti--back{z-index:0}.footer-cta__confetti--front{z-index:2}.footer-confetti-fall{z-index:calc(var(--layer-navigation) - 1);pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.footer-brush-cursor{z-index:calc(var(--layer-navigation) + 1);pointer-events:none;width:40px;height:40px;position:fixed;top:0;left:0}.footer-brush-cursor>span{transform-origin:19px 34px;background:url(/confetti-broom.svg) 50%/contain no-repeat;width:100%;height:100%;display:block}@media (any-hover:hover) and (any-pointer:fine){html.footer-confetti-brushing,html.footer-confetti-brushing *{cursor:none!important}}.footer-cta-scene>.footer-cta{z-index:1;transform-origin:50% 100%}.footer-cta-scene[data-entrance=waiting]:not(:focus-within)>.footer-cta{opacity:0;transform:translateY(56px)scale(.96)rotate(-1.2deg)}.footer-cta{border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:20px;display:flex;position:relative;overflow:visible}.footer-cta__content{flex:14rem;min-width:0;max-width:15.5rem}.footer-cta h2{margin:0}.footer-cta>.copy-email{flex-shrink:0}.footer-cta .north-button{margin-top:0}.footer-socials{justify-content:center;align-items:center;gap:.5rem;margin-top:1.25rem;display:flex}.footer-socials a{width:44px;height:44px;color:var(--soft);border-radius:50%;place-items:center;display:grid}.footer-socials a:hover{background:var(--surface);color:var(--fg)}.footer-socials a:focus-visible{color:var(--fg);outline:2px solid var(--yellow);outline-offset:3px}.footer-socials svg{display:block}@container footer-cta (width<=28rem){.footer-cta{text-align:center;flex-direction:column;justify-content:center}.footer-cta__content{flex:0 auto;width:100%}}.lightbox-backdrop{z-index:var(--layer-lightbox);background:var(--surface-01);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.lightbox-backdrop{background:color-mix(in srgb, var(--surface-01) 50%, transparent)}}.lightbox-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1;transition:opacity .22s var(--ease-out)}.lightbox-backdrop:is([data-starting-style],[data-ending-style]){opacity:0}.lightbox-backdrop[data-closing]{opacity:0;transition-duration:.38s}.lightbox{z-index:calc(var(--layer-lightbox) + 1);width:min(var(--lightbox-width,34rem), calc(100vw - 32px));overscroll-behavior:contain;border:1px solid var(--fg);max-height:calc(100dvh - 48px);padding:clamp(24px,4vw,36px);position:fixed;top:50%;left:50%;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.lightbox{border:1px solid color-mix(in srgb, var(--fg) 8%, transparent)}}.lightbox{background:var(--surface);color:var(--fg);opacity:1;transition:opacity .18s var(--ease-out), transform .24s var(--ease-out);border-radius:12px;outline:none;transform:translate(-50%,-50%);box-shadow:0 24px 90px #0003}.lightbox:not(.project-lightbox)[data-starting-style]{opacity:0;transform:translate(-50%,calc(8px - 50%))}.lightbox[data-ending-style]{opacity:0}.lightbox__close{z-index:3;border:1px solid var(--fg);place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:12px;right:12px}@supports (color:color-mix(in lab, red, red)){.lightbox__close{border:1px solid color-mix(in srgb, var(--fg) 8%, transparent)}}.lightbox__close{background:var(--surface);color:var(--fg);cursor:pointer;transition:scale .18s var(--ease-out);border-radius:50%}.lightbox__close:hover{scale:1.05}.lightbox__close:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}.lightbox__title{color:var(--fg);font:inherit;font-size:var(--type-display-small);letter-spacing:-.025em;text-wrap:balance;margin:0 36px 12px 0;font-weight:400;line-height:1.15}.lightbox__description{max-width:32rem;color:var(--soft);font-size:var(--type-body);margin:0;line-height:1.5}.contact-form{gap:20px;margin-top:28px;display:grid}.contact-form__pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.contact-form__field{gap:9px;min-width:0;display:grid}.contact-form__field label{color:var(--fg);font-size:13px;font-weight:400}.contact-form__optional{color:var(--soft);margin-left:auto;font-size:11px}.contact-form .contact-form__input{border:1px solid var(--fg);width:100%;height:44px;padding:11px 12px}@supports (color:color-mix(in lab, red, red)){.contact-form .contact-form__input{border:1px solid color-mix(in srgb, var(--fg) 12%, transparent)}}.contact-form .contact-form__input{background:var(--bg);color:var(--fg);font:inherit;box-shadow:none;border-radius:6px;font-size:16px;line-height:1.5}.contact-form .contact-form__input:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.contact-form .contact-form__input::placeholder{color:var(--soft);opacity:.8}.contact-form .contact-form__message{resize:vertical;height:auto;min-height:132px}.contact-form__note,.contact-form__status{color:var(--soft);margin:0;font-size:12px;line-height:1.5}.contact-form__status:empty{display:none}.contact-form>.north-button{justify-self:start;margin:0}.project-lightbox{background:var(--surface);max-height:calc(100dvh - clamp(32px,10vh,96px));box-shadow:none;transform-origin:0 0;clip-path:inset(0 round 12px);border:0;border-radius:12px;padding:0;top:clamp(16px,5vh,48px);overflow:visible;transform:translate(-50%)}.project-lightbox[data-project-ready=true]{clip-path:none}.project-lightbox:after{z-index:2;content:"";box-shadow:inset 0 0 0 1px var(--card-outline);pointer-events:none;border-radius:12px;position:absolute;inset:0}.project-lightbox[data-ending-style]{transition:none}.project-lightbox[data-closing]{pointer-events:none}.project-lightbox>.lightbox__close{transition:opacity .12s var(--ease-out), scale .18s var(--ease-out)}.project-lightbox[data-closing]>.lightbox__close{opacity:0}.project-lightbox__scroller{max-height:inherit;overscroll-behavior:contain;border-radius:inherit;overflow:hidden auto}.project-lightbox__controls{--control-size:36px;--control-step:calc(var(--control-size) + 12px);--control-shift:calc(-1 * var(--control-step));--control-stretch:1.2;--control-squash:.55;--control-opacity:0;--control-icon-blur:4px;--control-icon-delay:0s;--control-visibility:hidden;--control-pointer:none;--control-duration:.32s;--control-visibility-delay:.32s;z-index:3;top:12px;right:max(12px, calc(var(--control-step) + 16px - (100vw - 100%) / 2));width:var(--control-size);height:var(--control-size);isolation:isolate;transition:opacity .12s var(--ease-out);position:absolute}.project-lightbox__controls:after{z-index:0;width:var(--control-step);content:"";pointer-events:var(--control-pointer);height:100%;position:absolute;top:0;left:100%}.project-lightbox__control-filter{pointer-events:none;position:absolute}.project-lightbox__control-edge{transition:flood-color .16s var(--ease-out)}.project-lightbox__control-surfaces{z-index:0;width:calc(var(--control-size) + var(--control-step));pointer-events:none;position:absolute;inset:0 auto 0 0}.project-lightbox__control-surface{width:var(--control-size);height:var(--control-size);background:var(--surface);transition:background-color .16s var(--ease-out);border-radius:50%;position:absolute;top:0;left:0}.project-lightbox__control-surface--next{top:3px;left:calc(var(--control-step) + 3px);width:calc(var(--control-size) - 6px);height:calc(var(--control-size) - 6px);transform:translateX(var(--control-shift)) scale(var(--control-stretch), var(--control-squash));transition:transform var(--control-duration) cubic-bezier(.45, 0, .2, 1), background-color .16s var(--ease-out)}.project-lightbox__control-close.lightbox__close{width:var(--control-size);height:var(--control-size);background:0 0;border:0;min-width:0;min-height:0;top:0;left:0;right:auto;scale:1}.project-lightbox__next{z-index:2;top:0;left:var(--control-step);width:var(--control-size);height:var(--control-size);color:var(--fg);cursor:pointer;visibility:var(--control-visibility);pointer-events:var(--control-pointer);transition:visibility 0s var(--control-visibility-delay);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.project-lightbox__next-icon{opacity:var(--control-opacity);filter:blur(var(--control-icon-blur));transition:opacity .18s var(--ease-out) var(--control-icon-delay), filter .22s var(--ease-out) var(--control-icon-delay);place-items:center;display:grid}.project-lightbox__next:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}.project-lightbox__controls:has(:focus-visible){--control-outline:var(--card-outline)}@supports (color:color-mix(in lab, red, red)){.project-lightbox__controls:has(:focus-visible){--control-outline:color-mix(in srgb, var(--card-outline) 92%, var(--surface-08))}}.project-lightbox__controls:has(.project-lightbox__control-close:focus-visible) .project-lightbox__control-surface:not(.project-lightbox__control-surface--next){background-color:var(--surface)}.project-lightbox__controls:has(.project-lightbox__next:focus-visible) .project-lightbox__control-surface--next{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.project-lightbox__controls:has(.project-lightbox__control-close:focus-visible) .project-lightbox__control-surface:not(.project-lightbox__control-surface--next){background-color:color-mix(in srgb, var(--surface) 92%, var(--surface-08))}.project-lightbox__controls:has(.project-lightbox__next:focus-visible) .project-lightbox__control-surface--next{background-color:color-mix(in srgb, var(--surface) 92%, var(--surface-08))}}.project-lightbox[data-project-ready=true] .project-lightbox__controls:has(:focus-visible){--control-shift:0px;--control-stretch:1;--control-squash:1;--control-opacity:1;--control-icon-blur:0px;--control-icon-delay:.26s;--control-visibility:visible;--control-pointer:auto;--control-duration:.5s;--control-visibility-delay:0s}@media (hover:hover) and (pointer:fine){.project-lightbox__controls:hover{--control-outline:var(--card-outline)}@supports (color:color-mix(in lab, red, red)){.project-lightbox__controls:hover{--control-outline:color-mix(in srgb, var(--card-outline) 92%, var(--surface-08))}}.project-lightbox[data-project-ready=true] .project-lightbox__controls:hover{--control-shift:0px;--control-stretch:1;--control-squash:1;--control-opacity:1;--control-icon-blur:0px;--control-icon-delay:.26s;--control-visibility:visible;--control-pointer:auto;--control-duration:.5s;--control-visibility-delay:0s}.project-lightbox__controls:has(.project-lightbox__control-close:hover) .project-lightbox__control-surface:not(.project-lightbox__control-surface--next){background-color:var(--surface)}.project-lightbox__controls:has(.project-lightbox__next:hover) .project-lightbox__control-surface--next{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.project-lightbox__controls:has(.project-lightbox__control-close:hover) .project-lightbox__control-surface:not(.project-lightbox__control-surface--next){background-color:color-mix(in srgb, var(--surface) 92%, var(--surface-08))}.project-lightbox__controls:has(.project-lightbox__next:hover) .project-lightbox__control-surface--next{background-color:color-mix(in srgb, var(--surface) 92%, var(--surface-08))}}}@media (hover:none),(pointer:coarse){.project-lightbox__controls{--control-size:44px}.project-lightbox[data-project-ready=true] .project-lightbox__controls{--control-shift:0px;--control-stretch:1;--control-squash:1;--control-opacity:1;--control-icon-blur:0px;--control-visibility:visible;--control-pointer:auto;--control-visibility-delay:0s}}.project-lightbox[data-closing] .project-lightbox__controls{opacity:0;pointer-events:none}.project-lightbox__hero.work-preview__media{z-index:1;border-radius:0;width:100%;height:auto;min-height:0;margin:0;position:relative}.project-lightbox__hero.work-preview__media:after{z-index:1;content:"";background:var(--card-outline);pointer-events:none;height:1px;position:absolute;inset:auto 0 0}:root:not([data-theme=light]) .project-lightbox__hero.work-preview__media{background:var(--surface-01)}.project-lightbox__details{--project-details-padding:clamp(24px, 4vw, 36px);padding:var(--project-details-padding)}:root:not([data-theme=light]) .project-lightbox__details{background:var(--surface-01)}:root[data-theme=light] .project-lightbox__details{background:var(--surface-07)}.project-lightbox__heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.project-lightbox__heading .lightbox__title{overflow-wrap:anywhere;text-wrap:pretty;min-width:0;margin:0}.project-lightbox__heading>.north-button{flex-shrink:0;margin:0}.project-lightbox__stats{grid-template-columns:1fr 1.5fr .6fr;gap:24px;margin:28px 0 24px;padding-block:20px 0;display:grid}.project-lightbox__stats dt{color:var(--soft);font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:500}.project-lightbox__stats dd{color:var(--fg);overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.5}.project-lightbox__copy{max-width:38rem;color:var(--soft)}.project-lightbox__copy p{margin:0 0 18px}.project-lightbox__copy p:last-child{margin-bottom:0}.project-lightbox__gallery{--project-gallery-gap:clamp(8px, 2vw, 16px);gap:var(--project-gallery-gap);flex-direction:column;margin-top:60px;display:flex}.project-lightbox__gallery-row{gap:var(--project-gallery-gap);grid-template-columns:minmax(0,1fr);display:grid}.project-lightbox__gallery-row[data-layout=pair]{grid-template-columns:repeat(2,minmax(0,1fr))}.project-lightbox__gallery-image{border-radius:var(--radius-card);min-width:0;margin:0;overflow:hidden}.project-lightbox__gallery-image>img{width:100%;height:auto;display:block}.project-lightbox__gallery-image>video{object-fit:contain;background:var(--surface-03);width:100%;height:auto;max-height:min(720px,75dvh);display:block}.project-lightbox__gallery-image>video:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}.project-lightbox__related{margin-top:32px;margin-inline:calc(-1 * var(--project-details-padding));padding-top:28px;padding-inline:var(--project-details-padding);border-top:1px solid var(--fg)}@supports (color:color-mix(in lab, red, red)){.project-lightbox__related{border-top:1px solid color-mix(in srgb, var(--fg) 8%, transparent)}}.project-lightbox__related-heading{color:var(--fg);font-size:var(--type-section);margin:0 0 20px;font-weight:400;line-height:1.2}.project-lightbox__related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}:root[data-theme=light] .project-lightbox:after,:root[data-theme=light] .project-lightbox__hero.work-preview__media:after{display:none}.project-lightbox__related-card{min-width:0;color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.project-lightbox__related-card:focus-visible{--related-reveal-opacity:1;--related-label-offset:0px;--related-image-scale:.96;--related-reveal-duration:.22s;outline:2px solid var(--yellow);outline-offset:6px;border-radius:6px}.project-lightbox__related-image.work-preview__media{width:100%;height:auto;min-height:0;aspect-ratio:var(--project-preview-ratio);border-radius:6px;margin:0}.project-lightbox__related-image.work-preview__media>img{transform:scale(var(--related-image-scale,1));transition:transform var(--related-reveal-duration,.16s) var(--ease-out)}:root:not([data-theme=light]) .project-lightbox__related-image.work-preview__media:after{z-index:2;content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px var(--card-outline);pointer-events:none;position:absolute;inset:0}:root:not([data-theme=light]) .project-lightbox__related-image.work-preview__media{--related-reveal-surface:var(--surface-03);background:var(--surface-03)}:root[data-theme=light] .project-lightbox__related-image.work-preview__media{--related-reveal-surface:var(--surface-06);background:var(--surface-06)}.project-lightbox__related-image .work-preview__placeholder{gap:8px;font-size:clamp(1rem,2vw,1.5rem)}.project-lightbox__related-image .work-preview__placeholder img{width:32px;height:32px}.project-lightbox__related-reveal{z-index:1;border-radius:inherit;background:var(--related-reveal-surface);place-items:center;padding:12px;display:grid;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.project-lightbox__related-reveal{background:color-mix(in srgb, var(--related-reveal-surface) 70%, transparent)}}.project-lightbox__related-reveal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:var(--related-reveal-opacity,0);pointer-events:none;transition:opacity var(--related-reveal-duration,.16s) var(--ease-out)}.project-lightbox__related-label{max-width:100%;color:var(--fg);overflow-wrap:anywhere;transform:translateY(var(--related-label-offset,4px));transition:transform var(--related-reveal-duration,.16s) var(--ease-out);justify-content:center;align-items:center;gap:8px;font-size:clamp(14px,2vw,20px);font-weight:500;line-height:1.2;display:flex}.project-lightbox__related-label>img{object-fit:contain;flex-shrink:0;width:24px;height:24px;display:block}@media (hover:hover) and (pointer:fine){.project-lightbox__related-card:hover{--related-reveal-opacity:1;--related-label-offset:0px;--related-image-scale:.96;--related-reveal-duration:.22s}}@media (max-width:560px){.contact-form__pair{grid-template-columns:minmax(0,1fr);gap:20px}.project-lightbox__gallery-row[data-layout=pair]{grid-template-columns:minmax(0,1fr)}.project-lightbox__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (pointer:coarse){.north-button[data-size=sm],.lightbox__close{min-height:44px}.lightbox__close{min-width:44px}}.footer-logo-frame{aspect-ratio:18/5;isolation:isolate;width:min(70rem,100vw - 2rem);max-width:none;margin-top:clamp(6rem,14vw,10rem);margin-left:50%;position:relative;overflow:hidden;transform:translate(-50%)}.footer-logo-frame--marquee{--footer-logo-width:min(70rem, calc(100vw - 2rem));--footer-logo-height:min(19.444rem, calc(27.7778vw - .5556rem));width:100vw;height:var(--footer-logo-height);aspect-ratio:auto;margin-top:calc(180px - var(--footer-logo-height) * .477405)}.footer-logo-track{gap:200px;width:max-content;height:100%;display:flex;position:absolute;top:0;left:0}.footer-logo-frame--marquee .footer-logo{flex:0 0 var(--footer-logo-width);width:var(--footer-logo-width)}.footer-logo{width:100%;height:100%;position:relative;transform:translateY(calc(41% - 20px))}.footer-logo canvas,.footer-logo__poster{width:100%;height:100%;display:block;position:absolute;inset:0}.footer-logo__poster{background:var(--surface-03);-webkit-mask:url(/north-footer-poster.webp) 50%/contain no-repeat;mask:url(/north-footer-poster.webp) 50%/contain no-repeat}.footer-logo[data-ready=true] .footer-logo__poster{visibility:hidden}.footer-logo-frame--specimen{width:100%;margin:0;transform:none}.footer-logo-frame--specimen .footer-logo{transform:none}.design-system{width:min(100% - 2rem,65rem);padding-bottom:8rem}.ds-header{justify-content:space-between;align-items:center;display:flex}.ds-header-actions{align-items:center;gap:1rem;display:flex}.ds-back{color:var(--soft);font-size:var(--type-attribution)}.ds-back:hover{color:var(--fg)}.ds-intro{max-width:38rem;padding-block:clamp(5rem,11vw,9rem)}.ds-intro>.text-kicker{color:var(--yellow);margin:0 0 1.25rem}.ds-intro h1{margin:0 0 1.5rem}.ds-intro>.text-body{max-width:34rem;color:var(--soft);margin:0}.ds-section{border-top:1px solid var(--line);padding-block:3.5rem 5rem}.ds-section-heading{justify-content:space-between;align-items:start;gap:2rem;margin-bottom:2.5rem;display:flex}.ds-section-heading h2{font-size:var(--type-section);letter-spacing:-.02em;margin:0;font-weight:400;line-height:1.1}.ds-section-heading p{max-width:24rem;color:var(--soft);font-size:var(--type-attribution);margin:.3rem 0 0}.ds-type-item{border-top:1px solid var(--line);grid-template-columns:12rem minmax(0,1fr);align-items:baseline;gap:2rem;padding-block:1.5rem;display:grid}.ds-type-item:first-child{border-top:0}.ds-type-item>p{margin:0}.ds-meta{gap:.2rem;display:grid}.ds-meta strong{font-size:var(--type-attribution);font-weight:500}.ds-meta span{color:var(--quiet);font-family:var(--font-geist-mono), monospace;overflow-wrap:anywhere;font-size:.7rem}.ds-color-group+.ds-color-group{margin-top:3rem}.ds-color-group h3,.ds-component-group h3{color:var(--soft);font-size:var(--type-attribution);margin:0 0 1.25rem;font-weight:500}.ds-button-examples{flex-wrap:wrap;align-items:start;gap:1rem;display:flex}.ds-button-sizes{grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:20px;margin-top:24px;display:grid}.ds-button-size{flex-direction:column;align-items:start;gap:12px;display:flex}.ds-button-size>span{color:var(--soft);font-family:var(--font-geist-mono), monospace;font-size:10px}.ds-component-description{color:var(--soft);font-size:var(--type-attribution);margin:0 0 1.25rem}.ds-swatches{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:1.5rem 1rem;display:grid}.ds-swatch{gap:.12rem;min-width:0;display:grid}.ds-swatch-color{border:1px solid var(--line);border-radius:.25rem;height:5rem;margin-bottom:.55rem}.ds-swatch strong{font-size:var(--type-attribution);font-weight:500}.ds-swatch span,.ds-swatch code{color:var(--quiet);font-family:var(--font-geist-mono), monospace;overflow-wrap:anywhere;font-size:.7rem}.ds-component-group{max-width:37.5rem;margin-bottom:3.25rem}.ds-component-group .portfolio-section{padding-block:0}.ds-component-group .testimonial{margin-top:1rem}.ds-foundations{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem;margin:0;display:grid}.ds-foundations>div{border-top:1px solid var(--line);gap:.2rem;padding-block:1rem;display:grid}.ds-foundations dt{font-size:var(--type-attribution)}.ds-foundations dd{color:var(--quiet);font-family:var(--font-geist-mono), monospace;overflow-wrap:anywhere;margin:0;font-size:.75rem}@keyframes intro-in{to{opacity:1;transform:translateY(0)}}@keyframes fragment-loop{to{transform:translate(-50%)}}@keyframes contact-shimmer{0%{opacity:0;background-position:100% 0}12%,75%{opacity:1}to{opacity:0;background-position:0 0}}@keyframes contact-underline{0%{transform-origin:0;transform:scaleX(0)}45%{transform-origin:0;transform:scaleX(1)}46%{transform-origin:100%;transform:scaleX(1)}to{transform-origin:100%;transform:scaleX(0)}}@media (hover:hover) and (pointer:fine){.contact-link:not(.north-button):hover{color:var(--yellow);background-size:0 1px}.north-button:hover:not(:active){translate:0 -1px;scale:1.015}.copy-email__reveal-button:hover{--email-reveal-delay:.22s}.fragment-sequence figure:hover{z-index:1;transform:translateY(-.55rem)}:is(a.row:hover .client-icon,a.row:focus-visible .client-icon){transform:rotate(-5deg)scale(1.06);box-shadow:inset 0 1px #ffffff24,0 .35rem .8rem #0003}a.row:is(:hover,:focus-visible) :is(.client-icon--figma,.client-icon--formopinion,.client-icon--wishlist,.client-icon--tinytimer,.client-icon--finalpass,.client-icon--overexplain){box-shadow:none}}:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}body:has(:focus-visible):after{opacity:0}@media (max-width:900px),(prefers-reduced-motion:reduce){.card-bin,.card-bin-hint{display:none}.testimonials{perspective:none;flex-wrap:wrap;align-items:center;gap:2rem 1.5rem;width:100%;height:auto;margin-top:3.5rem;margin-left:0;padding:.75rem .75rem 1.5rem;display:flex;transform:none}.testimonials .scatter-card:nth-child(n){transform:translateY(var(--compact-shift,0px)) rotate(var(--compact-angle,-2deg));cursor:auto;touch-action:auto;-webkit-user-select:text;user-select:text;position:relative;inset:auto}.testimonials .scatter-card:first-child{--compact-angle:-1.6deg;--refresh-index:0}.testimonials .scatter-card:nth-child(2){--compact-angle:1.3deg;--refresh-index:1}.testimonials .scatter-card:nth-child(3){--compact-angle:-5deg;--compact-shift:3px;--refresh-index:2}.testimonials .scatter-card:nth-child(4){--compact-angle:4deg;--compact-shift:12px;--refresh-index:3}.testimonials .scatter-card:nth-child(5){--compact-angle:-3deg;--compact-shift:4px;--refresh-index:4}.testimonials .scatter-card:nth-child(6){--compact-angle:2deg;--compact-shift:8px;--refresh-index:5}.testimonials .testimonial{flex:0 0 100%;width:100%}.testimonials .testimonial-logo-card{flex:0 calc(50% - .75rem);width:min(12rem,50% - .75rem);max-width:12rem}.testimonials .testimonial-logo-card[data-slot="4"]{margin-inline-start:1.25rem}.scatter-card-keyboard,.scatter-card-anchors--interactive{display:none}.scatter-card-anchors--decorative{display:block}.testimonials .scatter-card:active:after,.testimonials .scatter-card:active .scatter-card-anchors--decorative{opacity:1}.testimonials__refresh{flex:0 0 100%;justify-content:center;padding-top:.5rem;display:flex}.testimonials .testimonial-refresh{opacity:1;pointer-events:auto;cursor:pointer;flex-shrink:0;width:44px;height:44px;padding:0;display:grid;position:relative;inset:auto;transform:none}.testimonials .testimonial-refresh:focus-visible{outline:2px solid var(--scatter-selection);outline-offset:4px}.testimonials .testimonial-refresh[aria-disabled=true]{cursor:progress}.testimonials[data-refresh] .testimonial-refresh svg{animation:testimonials-refresh-turn .48s var(--ease-out) both}.testimonials[data-refresh=leaving] .scatter-card{animation:testimonials-refresh-out var(--refresh-out-duration) ease-in-out calc(var(--refresh-index,0) * var(--refresh-out-stagger)) both}.testimonials[data-refresh=entering] .scatter-card{animation:testimonials-refresh-in var(--refresh-in-duration) var(--ease-out) calc(var(--refresh-index,0) * var(--refresh-in-stagger)) both}}@media (max-width:900px){.testimonials .testimonial-logo-card{flex:0 0 calc(50% - .75rem);width:calc(50% - .75rem);max-width:none}.testimonials .testimonial-logo-card[data-slot="4"]{margin-inline-start:0}}@media (max-width:560px){main{--page-top:2rem}.masthead{margin-bottom:4.5rem}.fragment-sequence figure{height:12rem}.row{--project-icon-size:2rem;grid-template-columns:var(--project-icon-size) minmax(0, 1fr) auto;row-gap:0}.row>.client-icon{grid-area:1/1/3}.row strong{grid-area:1/2}.row>span:not(.client-icon):not(.row-action){grid-area:2/2}.row-action{grid-area:1/3/3;align-self:center}.row time{display:none}.testimonials .testimonial{grid-template-columns:5.5rem minmax(0,1fr);gap:1.25rem;padding:1rem}.testimonial-portrait{width:5.5rem}.testimonials .testimonial.testimonial--brush{grid-template-columns:6.5rem minmax(0,1fr)}.testimonial-portrait--brush{width:6.5rem}.ds-section-heading{display:block}.ds-section-heading p{margin-top:.7rem}.ds-type-item{grid-template-columns:1fr;gap:.8rem}.ds-foundations{grid-template-columns:1fr}}@media (max-width:420px){.testimonials .testimonial.testimonial--brush{grid-template-columns:minmax(0,1fr)}.testimonials .testimonial-identity{flex-direction:row;align-items:center}.testimonials .testimonial-portrait--brush{width:4rem}.scroll-reveal__line{white-space:normal;overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){.story-easter-egg__emoji{animation:none}.copy-email__char{transition:none;filter:none!important;transform:none!important}.footer-cta__confetti,.footer-confetti-fall,.footer-brush-cursor{display:none}html.footer-confetti-brushing,html.footer-confetti-brushing *{cursor:auto!important}.footer-cta-scene[data-entrance=waiting]:not(:focus-within)>.footer-cta{opacity:1;transform:none}.copy-email__feedback,.copy-email__feedback[data-state]{transition:none;transform:translate(-50%)}.lightbox,.lightbox-backdrop,.lightbox__close,.project-lightbox>.lightbox__close,.project-lightbox__details{transition:none}.lightbox:not(.project-lightbox)[data-starting-style]{transform:translate(-50%,-50%)}.project-lightbox__details{transform:none}.project-lightbox__controls,.project-lightbox__control-surface--next,.project-lightbox__next{transition:none}.project-lightbox__next-icon{filter:none;transition:none}.project-lightbox__control-surfaces{filter:none!important}.project-lightbox__control-edge{transition:none}.project-lightbox__control-surface{box-shadow:inset 0 0 0 1px var(--control-outline,var(--card-outline));transition:none}.project-lightbox__control-surface--next{opacity:var(--control-opacity)}.project-lightbox__related-reveal,.project-lightbox__related-label{transition:none}.project-lightbox__related-label{transform:none}.project-lightbox__related-image.work-preview__media>img{transition:none;transform:none}.lightbox__close:hover{scale:1}.north-button,.north-button:is(:hover,:active),.north-button:hover:not(:active){transition:none;transform:none}.scroll-reveal[data-reveal] .scroll-reveal__ink{opacity:1;filter:none;clip-path:none;transform:none}.card-bin,.card-bin-hint{display:none}.marker-word[data-marker] :is(.marker-word__pass,.marker-word__print){clip-path:none;animation:none}::view-transition-new(root){animation:none;-webkit-mask-image:none;mask-image:none}body:after{display:none}html{scroll-behavior:auto}body,.theme-toggle{transition:none}.intro :is(h1,p),.intro .contact-link{opacity:1;clip-path:none;animation:none;transform:none}.contact-link.contact-link--shimmer:is(:hover,:focus-visible){color:var(--fg)}.contact-link--shimmer:before{display:none}.contact-link--shimmer:after{transform:scaleX(1)}.contact-link--shimmer:is(:hover,:focus-visible):after{animation:none}.fragment-section{touch-action:pan-x pan-y pinch-zoom;overflow-x:auto}.fragment-section:before,.fragment-section:after{display:none}.fragment-track{animation:none}.fragment-sequence[aria-hidden=true]{display:none}.fragment-sequence figure,.row,.row .row-action,.row-action:after,.work-preview,.work-preview__media,.client-icon,.row i,.testimonial,.testimonial-portrait,.portrait-badge,.tooltip,.marker-tooltip,.contact-link{transition:none}.scatter-card-keyboard,.scatter-card-anchors--interactive{display:none}.testimonials[data-refresh] .scatter-card,.testimonials[data-refresh] .testimonial-refresh svg{animation:none}.scatter-card:after,.scatter-card-anchors{transition:none}.testimonials .scatter-card[data-incoming]{animation:none}.card-bin{transition:none}.card-bin:before{opacity:0;animation:none!important}.fragment-sequence figure:hover{transform:none}.portfolio-item:is(:hover,:has(:focus-visible)) .row:after{animation:none}}@media (prefers-contrast:more){body:after{display:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
