@layer components{.ui-icon{width:calc(var(--spacing,.25rem) * 6);height:calc(var(--spacing,.25rem) * 6);background-color:currentColor;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-sun{-webkit-mask-image:url(/ui/sun.svg);mask-image:url(/ui/sun.svg)}.icon-moon{-webkit-mask-image:url(/ui/moon.svg);mask-image:url(/ui/moon.svg)}.icon-menu{-webkit-mask-image:url(/ui/menu.svg);mask-image:url(/ui/menu.svg)}.icon-close{-webkit-mask-image:url(/ui/close.svg);mask-image:url(/ui/close.svg)}.icon-telegram{-webkit-mask-image:url(/ui/telegram.svg);mask-image:url(/ui/telegram.svg)}.icon-email{-webkit-mask-image:url(/ui/email.svg);mask-image:url(/ui/email.svg)}.icon-phone{-webkit-mask-image:url(/ui/phone.svg);mask-image:url(/ui/phone.svg)}.icon-linkedin{-webkit-mask-image:url(/ui/linkedin.svg);mask-image:url(/ui/linkedin.svg)}.ui-icon-vector{background-color:#0000;-webkit-mask:none;mask:none}}
@layer components{.text-link-label{transition:background-size .16s}.text-link-arrow{transition:transform .16s}.text-link:hover .text-link-label,.text-link:focus-visible .text-link-label{background-size:100% 2px}.text-link:hover .text-link-arrow{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.text-link-label,.text-link-arrow{transition:none}.text-link:hover .text-link-arrow{transform:none}}.text-link-label{-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:3px}.text-link-contact-icon{vertical-align:-.12em;width:1em;height:1em;margin-inline-end:calc(var(--spacing,.25rem) * 2);display:inline-block}.text-link-arrow{margin-inline-start:.25em;display:inline-block}.text-link-arrow .ui-icon-vector{width:1em;height:1em}}
@keyframes backdrop-in{0%{background:0 0}to{background:#0000007a}}@keyframes backdrop-out{0%{background:#0000007a}to{background:0 0}}@layer components{.ui-dialog[data-state=opening]::backdrop{animation:.24s ease-out both backdrop-in}.ui-dialog[data-state=closing]::backdrop{animation:.18s ease-out both backdrop-out}@media (prefers-reduced-motion:reduce){.ui-dialog::backdrop{animation:none!important}}.ui-dialog{max-width:min(720px,100% - 48px)}.ui-dialog::backdrop{background-color:#0000007a}@supports (color:color-mix(in lab, red, red)){.ui-dialog::backdrop{background-color:color-mix(in oklab, var(--color-black,#000) 48%, transparent)}}}
@layer components{.ui-dialog.ui-gallery-dialog{border-radius:var(--radius-2xl,1rem);width:calc(100vw - 24px);max-width:calc(100vw - 24px);height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:calc(var(--spacing,.25rem) * 4)}.gallery-full-stage{justify-content:center;align-items:center;display:flex;overflow:auto}.gallery-full-stage img{object-fit:contain;width:auto;max-width:100%;max-height:calc(100dvh - 200px);margin-inline:auto}.gallery-full-stage[data-zoomed=true]{justify-content:flex-start;align-items:flex-start}.gallery-full-stage[data-zoomed=true]>div{flex-shrink:0;width:max-content;min-width:100%}.gallery-full-stage[data-zoomed=true] img{max-width:none;max-height:none}}
@layer components{.case-media-stage{cursor:zoom-in}.case-media-stage img{object-fit:contain;width:auto;max-width:100%;max-height:480px;margin-inline:auto}}
:root{--swiper-theme-color:#007aff}:host{z-index:1;margin-left:auto;margin-right:auto;display:block;position:relative}.swiper{z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;display:block;position:relative;overflow:hidden}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{z-index:1;width:100%;height:100%;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box;display:flex;position:relative}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate(0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;transition-property:transform;display:block;position:relative}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(#0000,#00000080)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(#00000080,#0000)}.swiper-lazy-preloader{z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top-color:#0000;border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:1s linear infinite swiper-preloader-spin}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
@layer components{.ui-accordion{overflow:clip}.ui-accordion summary{border-radius:inherit;outline-offset:-4px;list-style:none}.ui-accordion[open] summary{border-bottom-right-radius:0;border-bottom-left-radius:0}}
@layer components{@media (prefers-reduced-motion:no-preference){.case-details-chevron{transition:transform .18s}}.case-module-details summary::-webkit-details-marker{display:none}.case-module-details summary:hover{background-color:var(--accent-subtle)}.case-module-details[open] .case-details-chevron{transform:rotate(180deg)}}
@layer components{.brand{min-height:calc(var(--spacing,.25rem) * 11);flex-shrink:0;align-items:center;display:inline-flex}.brand-mark{background-color:var(--foreground);width:176px;height:25.835px;display:block;-webkit-mask:url(/ui/logo-mobile.svg) 50%/contain no-repeat;mask:url(/ui/logo-mobile.svg) 50%/contain no-repeat}@media (min-width:64rem){.brand-mark{width:216px;height:31.706px;-webkit-mask-image:url(/ui/logo.svg);mask-image:url(/ui/logo.svg)}}}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{.project-card{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 5);flex-direction:column;min-width:0;display:flex}.project-card-visual{isolation:isolate;border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);background-color:var(--surface);--sage-glow:var(--accent);position:relative}@supports (color:color-mix(in lab, red, red)){.project-card-visual{--sage-glow:color-mix(in srgb, var(--accent) 45%, var(--accent-subtle))}}.project-card-visual:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;opacity:.65;background:radial-gradient(ellipse at 90% 0%, var(--sage-glow), transparent 65%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.project-card-visual:before{background:radial-gradient(ellipse at 90% 0%, color-mix(in srgb, var(--sage-glow) 20%, transparent), transparent 65%)}}.project-card-visual:focus-within{border-color:var(--sage-glow);box-shadow:0 8px 32px var(--sage-glow), inset 0 1px var(--sage-glow)}@supports (color:color-mix(in lab, red, red)){.project-card-visual:focus-within{box-shadow:0 8px 32px color-mix(in srgb, var(--sage-glow) 17%, transparent), inset 0 1px color-mix(in srgb, var(--sage-glow) 26%, transparent)}}.project-card-visual:focus-within:before{opacity:1}@media (hover:hover) and (pointer:fine){.project-card-visual:hover{border-color:var(--sage-glow);box-shadow:0 8px 32px var(--sage-glow), inset 0 1px var(--sage-glow)}@supports (color:color-mix(in lab, red, red)){.project-card-visual:hover{box-shadow:0 8px 32px color-mix(in srgb, var(--sage-glow) 17%, transparent), inset 0 1px color-mix(in srgb, var(--sage-glow) 26%, transparent)}}.project-card-visual:hover:before{opacity:1}}.project-card-visual{width:100%;min-width:0;min-height:0;padding:calc(var(--spacing,.25rem) * 3);border-radius:22px}@media (prefers-reduced-motion:no-preference){.project-card-visual{transition:border-color .32s ease-out,box-shadow .32s ease-out}.project-card-visual:before{transition:opacity .32s ease-out}}.project-card:focus-within .project-card-visual{border-color:var(--sage-glow);box-shadow:0 8px 32px var(--sage-glow), inset 0 1px var(--sage-glow)}@supports (color:color-mix(in lab, red, red)){.project-card:focus-within .project-card-visual{box-shadow:0 8px 32px color-mix(in srgb, var(--sage-glow) 17%, transparent), inset 0 1px color-mix(in srgb, var(--sage-glow) 26%, transparent)}}.project-card:focus-within .project-card-visual:before{opacity:1}@media (hover:hover) and (pointer:fine){.project-card:hover .project-card-visual{border-color:var(--sage-glow);box-shadow:0 8px 32px var(--sage-glow), inset 0 1px var(--sage-glow)}@supports (color:color-mix(in lab, red, red)){.project-card:hover .project-card-visual{box-shadow:0 8px 32px color-mix(in srgb, var(--sage-glow) 17%, transparent), inset 0 1px color-mix(in srgb, var(--sage-glow) 26%, transparent)}}.project-card:hover .project-card-visual:before{opacity:1}}.project-card-copy{align-items:flex-start;gap:calc(var(--spacing,.25rem) * 5);flex-direction:column;flex:1;width:100%;min-width:0;display:flex}.project-card-media{aspect-ratio:1.56;border-radius:var(--radius-lg,.5rem);background-color:var(--accent-subtle);place-items:center;width:100%;display:grid}.project-card-visual img{border-radius:var(--radius-lg,.5rem);width:100%}.project-card--split .project-card-copy{order:1}.project-card--split .project-card-visual{order:2}.project-card--grid .project-card-visual,.project-card--split .project-card-visual,.project-card--wide .project-card-visual{aspect-ratio:1.5625}.project-card--grid .project-card-visual>div,.project-card--split .project-card-visual>div,.project-card--wide .project-card-visual>div{height:100%}.project-card--grid .project-card-visual img,.project-card--split .project-card-visual img,.project-card--wide .project-card-visual img{object-fit:cover;object-position:top;height:100%}.project-card--feature .project-card-visual{order:2}.project-card--feature .project-card-copy{display:contents}.project-card--feature h3{order:1}.project-card--feature .project-card-copy>p,.project-card--feature .project-card-copy>a{order:3}@media (min-width:1024px){.project-card--grid h3{min-height:72px}.project-card--grid{height:100%;min-height:824px}.project-card--split{column-gap:calc(var(--spacing,.25rem) * 10);row-gap:calc(var(--spacing,.25rem) * 8);grid-template-columns:minmax(0,440fr) minmax(0,816fr);display:grid}.project-card--split .project-card-eyebrow{grid-column:span 2/span 2}.project-card--split .project-card-copy{gap:calc(var(--spacing,.25rem) * 6);grid-row-start:2;grid-column-start:1}.project-card--split .project-card-visual{grid-row-start:2;grid-column-start:2}.project-card--wide{gap:calc(var(--spacing,.25rem) * 8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-card--wide .project-card-eyebrow{grid-column:span 2/span 2}.project-card--wide .project-card-copy{grid-row-start:2;grid-column-start:2}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
@layer components{@media (prefers-reduced-motion:no-preference){.project-card-visual{transition:translate .24s ease-out,border-color .32s ease-out,box-shadow .32s ease-out}.project-card:focus-within .project-card-visual{translate:0 -3px}@media (hover:hover) and (pointer:fine){.project-card:hover .project-card-visual{translate:0 -3px}}}}
@layer components{.theme-toggle{height:calc(var(--spacing,.25rem) * 13);width:calc(var(--spacing,.25rem) * 24);background-color:var(--surface);padding:var(--spacing,.25rem);border-radius:2147483647px;flex-shrink:0;display:flex;position:relative}.theme-toggle:disabled{opacity:.5}.theme-option{z-index:1;width:calc(var(--spacing,.25rem) * 11);height:calc(var(--spacing,.25rem) * 11);color:var(--secondary);border-radius:2147483647px;justify-content:center;align-items:center;display:flex;position:relative}.theme-option.is-selected{color:var(--foreground)}.theme-selection{pointer-events:none;inset-inline-start:calc(var(--spacing,.25rem) * 1);top:var(--spacing,.25rem);width:calc(var(--spacing,.25rem) * 11);height:calc(var(--spacing,.25rem) * 11);background-color:var(--accent-subtle);border-radius:2147483647px;position:absolute}}
@layer components{.footer-grid{gap:calc(var(--spacing,.25rem) * 6);flex-direction:column;display:flex}@media (min-width:64rem){.footer-grid{gap:calc(var(--spacing,.25rem) * 8);grid-template-columns:minmax(0,480fr) minmax(0,784fr);display:grid}}.footer-links{gap:calc(var(--spacing,.25rem) * 6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:64rem){.footer-links{gap:calc(var(--spacing,.25rem) * 8);grid-template-columns:minmax(0,320fr) minmax(0,432fr)}.footer-brand p{max-width:calc(var(--spacing,.25rem) * 110)}}}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{.site-header{pointer-events:none;z-index:2;padding-block:calc(var(--spacing,.25rem) * 6);position:sticky;top:0}.header-row{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}@media (min-width:64rem){.header-row{gap:calc(var(--spacing,.25rem) * 8)}}.header-brand{pointer-events:auto;padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 1.5);border-radius:2147483647px;flex-shrink:0}@media (min-width:64rem){.header-brand{padding-inline:calc(var(--spacing,.25rem) * 6);padding-block:calc(var(--spacing,.25rem) * 2)}}.header-dock{pointer-events:auto;align-items:center;gap:calc(var(--spacing,.25rem) * 4);min-width:0;padding-block:calc(var(--spacing,.25rem) * 1.5);border-radius:2147483647px;padding-inline-start:calc(var(--spacing,.25rem) * 6);padding-inline-end:calc(var(--spacing,.25rem) * 1.5)}.desktop-navigation{align-items:center;column-gap:calc(var(--spacing,.25rem) * 4);flex-wrap:wrap;display:flex}.desktop-navigation .nav-link{padding-inline:calc(var(--spacing,.25rem) * 2);border-radius:2147483647px;justify-content:center}.desktop-appearance{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:var(--border);flex-shrink:0;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.desktop-appearance{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.desktop-appearance{padding-inline-start:calc(var(--spacing,.25rem) * 4)}.header-dock .theme-toggle{background-color:#0000}.site-header .menu-trigger{pointer-events:auto;border-radius:2147483647px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}@layer components{.menu-layer{pointer-events:none;z-index:1;position:fixed;inset:0}.menu-backdrop{pointer-events:auto;background-color:#00000052;width:100%;height:100%;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.menu-backdrop{background-color:color-mix(in oklab, var(--color-black,#000) 32%, transparent)}}.menu-panel-clip{width:min(100% - 48px,1296px);margin-inline:auto;position:relative}@media (min-width:64rem){.menu-panel-clip{width:min(100% - 144px,1296px)}}.menu-panel-clip{top:var(--navigation-height);max-height:calc(100dvh - var(--navigation-height) - 24px);overflow:hidden}.menu-panel{pointer-events:auto;gap:calc(var(--spacing,.25rem) * 6);border-radius:var(--radius-3xl,1.5rem);padding:calc(var(--spacing,.25rem) * 6);max-height:calc(100dvh - var(--navigation-height) - 24px);flex-direction:column;display:flex;position:relative;overflow-y:auto}.menu-panel nav{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.menu-panel .nav-link{min-height:calc(var(--spacing,.25rem) * 12);border-radius:var(--radius-lg,.5rem);padding-inline:calc(var(--spacing,.25rem) * 2);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)))}.menu-panel .ui-label{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.menu-panel .ui-label{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.menu-panel .ui-label{padding-top:calc(var(--spacing,.25rem) * 5)}.menu-panel .theme-toggle{background-color:#0000}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
