:root{--color-primary: #1e1e1e;--color-secondary: #75726f;--font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "SF Mono", SFMono-Regular, ui-monospace, Menlo, Consolas, monospace;--font-size-body: 15px;--line-height-body: 24px;--font-weight-body: 400;--letter-spacing-body: -.015px;--font-size-meta: 12px;--line-height-meta: 14.5px;--font-weight-meta: 500;--letter-spacing-meta: .3px;--space-xs: 4px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-section: 54px;--space-columns: 80px;--width-profile: 390px;--width-work: 600px;--width-page: 1200px;--width-min-page: 360px;--avatar-width: 112px;--avatar-height: 160px;--motion-tooltip: .28s;--motion-fast: .22s;--motion-text-hover: .38s;--underline-offset: 2px;--ease-out: cubic-bezier(.22, 1, .36, 1)}@layer reset,layout,components,effects;@layer reset{:root{color-scheme:light;font-family:var(--font-body);color:var(--color-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-body);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-body);-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}html{scrollbar-gutter:stable}body,h1,h2,p,figure{margin:0}body{min-width:calc(var(--width-min-page) / var(--site-scale, 1))}h1,h2,strong{font:inherit}img{display:block}:focus-visible{outline:1px solid var(--color-primary);outline-offset:5px}html[data-intro]{overflow:hidden}}@layer layout{.portfolio{width:min(100%,var(--width-page));margin-inline:auto;padding-inline:32px;display:grid;grid-template-columns:clamp(320px,31vw,var(--width-profile)) minmax(0,var(--width-work));justify-content:center;gap:clamp(32px,6vw,var(--space-columns));align-items:start}.profile{position:sticky;top:0;min-width:0;height:100svh;max-height:981px;padding-block:var(--space-section) var(--space-xl);display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-xl)}.profile-body{min-height:0;overflow-y:auto;scrollbar-width:none;padding-inline:var(--space-md)}.profile-body::-webkit-scrollbar{display:none}.profile-header h1{margin-top:var(--space-sm)}.bio{padding-top:48px;color:var(--color-secondary)}.bio p+p{margin-top:var(--space-lg)}.bio strong{color:var(--color-primary)}.bio-link{color:var(--color-primary);text-decoration:none}.products{margin-top:48px;color:var(--color-secondary)}.profile-footer{flex-shrink:0;padding-inline:var(--space-md)}.work{--cover-width:clamp(92%, calc(100% - ((1440px - 100vw)*.12)) ,100%);min-width:0;padding-block:var(--space-section) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl)}.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.case-pair .case-media{aspect-ratio:294 / 600}@media(max-width:1099px){.portfolio{display:flex;flex-direction:column;align-items:center;max-width:663px;padding-inline:32px;gap:var(--space-section)}.profile{position:relative;height:auto;max-height:none;min-height:0;width:100%;padding-bottom:0}.profile-body{width:100%;overflow:visible}.profile-header{display:flex;justify-content:space-between;gap:var(--space-md)}.profile-footer{display:none}.work{width:100%;max-width:560px;padding-top:0;gap:var(--space-section);--cover-inset:clamp(8px,1.5vw,12px);--cover-width:calc(100% - var(--cover-inset) * 2)}.case-pair{display:flex;flex-direction:column;gap:var(--space-section)}.case-pair .case-media{aspect-ratio:294 / 600}}@media(max-width:600px){.portfolio{max-width:520px;padding-inline:32px}.profile-body{padding-inline:var(--space-md)}.bio{padding-top:48px}.work{gap:var(--space-section)}}@media(max-width:390px){.profile-body{padding-inline:var(--space-md)}}}@layer components{.company-trigger{cursor:default;white-space:nowrap}.company-tooltip{position:fixed;left:0;top:0;z-index:20;pointer-events:none;max-width:calc(100vw - 16px);width:max-content;padding:8px;background:var(--color-primary);color:Canvas;font:var(--font-weight-meta) var(--font-size-meta)/var(--line-height-meta) var(--font-mono);letter-spacing:var(--letter-spacing-meta);text-transform:uppercase;visibility:hidden;opacity:0;clip-path:inset(0 0 calc(100% - 1px) 0);transition:clip-path var(--motion-tooltip) var(--ease-out),opacity .14s ease,visibility 0s .28s}.company-tooltip-copy{display:block;transform:translateY(-4px);transition:transform var(--motion-tooltip) var(--ease-out)}.company-tooltip-copy>span{display:block}.company-tooltip.is-open{visibility:visible;opacity:1;clip-path:inset(0);transition-delay:0s}.company-tooltip.is-open .company-tooltip-copy{transform:translateY(0)}@media(max-width:1099px){.bio-desktop-break{display:none}}.portrait{position:relative;width:var(--avatar-width);height:var(--avatar-height);overflow:hidden;flex:none}.portrait-photo{position:absolute;inset:0}.portrait-photo img{position:absolute;width:100%;height:100%;object-fit:cover}.contacts{font:var(--font-weight-meta) var(--font-size-meta)/var(--line-height-meta) var(--font-mono);letter-spacing:var(--letter-spacing-meta);text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);white-space:nowrap}.contact-items{display:flex;gap:14px}.contact-items a{color:inherit;text-decoration:none}.contacts-compact{display:none}.products-list{list-style:none;padding:0;margin:var(--space-md) 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.product-row{max-width:100%;width:fit-content;padding-inline-end:18px}.product-name{margin-inline-end:4px;white-space:nowrap;color:var(--color-primary)}.product-description{min-width:0;color:var(--color-secondary)}.case{min-width:0}.case-media{width:var(--cover-width,100%);margin-inline:auto;position:relative;overflow:hidden;aspect-ratio:1;outline:1px solid color-mix(in srgb,var(--color-primary) 5%,transparent);outline-offset:-1px}.case-pair .case-media{aspect-ratio:294 / 600}.case-media>img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover}.case figcaption{width:var(--cover-width,100%);margin-inline:auto;margin-top:var(--space-sm)}.collage{position:relative;width:100%;aspect-ratio:600 / 450.905}.collage-canvas{position:absolute;width:124.638%;height:100%;left:-12.319%}@media(min-width:1100px)and (max-width:1239px){.collage-canvas{width:100%;height:80.232%;left:0;top:9.884%}}.collage-piece{position:absolute}.collage-piece>img{width:100%;height:100%;object-fit:cover}.collage-piece.imgTelegramCloudPhotoSize25429275194486285076X1,.collage-piece.imgTelegramCloudPhotoSize25229134103654295778X1{border:3px solid var(--color-primary)}.collage-piece.imgCodexColor1{overflow:visible}.collage-piece.imgCodexColor1 img{position:absolute;left:-19.67%;top:-3.72%;width:139.34%;height:193.56%}.collage-piece.imgTelegramCloudPhotoSize25413872685852334575Y1{overflow:hidden}.collage-piece.imgTelegramCloudPhotoSize25413872685852334575Y1 img{height:139.08%;position:absolute;top:-17.78%}.bottom-fade{pointer-events:none;position:fixed;bottom:0;right:0;width:calc(50% + 130px);height:72px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask-image:url(/assets/imgGradientOverlayBlur.svg);mask-image:url(/assets/imgGradientOverlayBlur.svg);-webkit-mask-size:100% 100%;mask-size:100% 100%;background:linear-gradient(to bottom,transparent,Canvas)}@media(max-width:1099px){.case-pair .case-media{aspect-ratio:294 / 600}.contacts-compact{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;text-align:right}.contacts-compact{gap:14px}.contacts-compact .contact-items{flex-direction:column;align-items:flex-end;gap:4px}.contacts-compact .location{color:var(--color-secondary);font-size:inherit}.bottom-fade{width:100%}}}@layer effects{.text-hover{cursor:pointer;padding-bottom:var(--underline-offset);background-image:linear-gradient(var(--color-primary),var(--color-primary)),linear-gradient(color-mix(in srgb,var(--color-secondary) 20%,transparent),color-mix(in srgb,var(--color-secondary) 20%,transparent));background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px,100% 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size var(--motion-text-hover) var(--ease-out)}.text-hover:focus-visible{background-size:100% 1px,100% 1px}@media(hover:hover){.text-hover:hover{background-size:100% 1px,100% 1px}}@media(max-width:1099px){.contacts-compact .text-hover{display:inline-block;width:max-content;max-width:100%}}.case-label{cursor:pointer}.case-label-tail{display:inline-block;white-space:nowrap}.case-label-tail .case-arrow{margin-left:4px}.case-arrow,.project-arrow{display:inline-block;vertical-align:-1px;opacity:0;transform:translate(-2px,2px);transition:opacity var(--motion-text-hover) var(--ease-out),transform var(--motion-text-hover) var(--ease-out)}.product-link{cursor:pointer}.product-last-word{position:relative;white-space:nowrap}.product-last-word .project-arrow{position:absolute;left:calc(100% + 4px);top:3px}.product-link:focus-visible .text-hover{background-size:100% 1px,100% 1px}.product-link:focus-visible .project-arrow{opacity:1;transform:translate(0)}@media(hover:hover){.product-link:hover .text-hover{background-size:100% 1px,100% 1px}.product-link:hover .project-arrow{opacity:1;transform:translate(0)}}.case:focus-visible .case-label .text-hover{background-size:100% 1px,100% 1px}.case:focus-visible .case-arrow{opacity:1;transform:translate(0)}@media(hover:hover){.case:hover .case-label .text-hover{background-size:100% 1px,100% 1px}.case:hover .case-arrow{opacity:1;transform:translate(0)}}.case-media>img{transition:transform var(--motion-fast) var(--ease-out)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.case-interactive:hover .case-media>img{transform:scale(1.018)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}}@layer components{.collage{aspect-ratio:600 / 474.905;isolation:isolate}.collage-canvas{top:12px;height:calc(100% - 24px)}@media(min-width:1100px)and (max-width:1239px){.collage-canvas{height:76.177%;top:11.912%}}@media(max-width:1099px){.collage{aspect-ratio:747.827 / 474.905;overflow:hidden}.collage-canvas{width:100%;left:0;top:2.527%;height:94.946%}}.collage-piece{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.collage-piece.is-dragging{cursor:grabbing}.collage-piece>img{pointer-events:none;-webkit-user-drag:none}.collage-piece.imgClickLove,.collage-piece.imgClickGun,.collage-piece.imgImage1926989689{overflow:hidden}.collage-piece.imgClickLove img{height:104.08%}.collage-piece.imgClickGun img{height:139.08%;position:absolute;top:-17.78%}.collage-piece.imgImage1926989689 img{width:106.45%}.collage-piece.imgCodexColor2{filter:drop-shadow(0 2.053px 2.464px rgb(122 126 133 / .29)) drop-shadow(0 8.622px 4.311px rgb(122 126 133 / .25))}.collage-piece.imgCodexColor3{filter:drop-shadow(0 5px 6px rgb(122 126 133 / .29)) drop-shadow(0 21px 10.5px rgb(122 126 133 / .25))}.collage-piece.imgTelegramCloudPhotoSize25229134103654295778X1{border-width:2.511px}.heart-burst{position:fixed;width:0;height:0;z-index:30;pointer-events:none;color:#f32640}.heart-burst>span{position:absolute;left:0;top:0;line-height:1;opacity:0;animation:love-scatter .8s var(--ease-out) both}}@layer effects{@keyframes love-scatter{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}12%{opacity:1}20%{transform:translate(calc(-50% + var(--heart-x) * .3),calc(-50% + var(--heart-y) * .3)) rotate(calc(var(--heart-rotation) * .3)) scale(1)}65%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--heart-x)),calc(-50% + var(--heart-y))) rotate(var(--heart-rotation)) scale(.3)}}@media(prefers-reduced-motion:reduce){.heart-burst>span{animation:love-still .18s ease-out both!important}}@keyframes love-still{0%,70%{opacity:1}to{opacity:0}}}@layer reset{:root{--site-scale: .9;zoom:var(--site-scale)}}@layer layout{@media(min-width:1100px){.profile{height:calc(100svh / var(--site-scale))}}}@layer effects{html[data-intro],html[data-intro] body{overflow:hidden;overscroll-behavior:none;touch-action:none}html[data-intro] .profile-body{overflow:hidden}.intro-lettering.intro-lettering-contact{color:#fff;-webkit-text-stroke:0}.is-entering{opacity:0}html[data-intro=revealing] .is-entering{opacity:1}.bottom-fade{opacity:0;transition:opacity 1.1s cubic-bezier(.4,0,.2,1)}.portfolio.is-ready~.bottom-fade{opacity:1}.canvas-intro{--blueprint:#488B71;position:fixed;inset:0;z-index:40;overflow:hidden;pointer-events:none;background:transparent}.intro-sheet{position:absolute;inset:0;color:#fff;background:var(--blueprint)}.intro-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff20 1px,transparent 1px),linear-gradient(90deg,#ffffff20 1px,transparent 1px),linear-gradient(#ffffff0c 1px,transparent 1px),linear-gradient(90deg,#ffffff0c 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}.is-drawing .intro-grid{animation:canvas-grid .65s ease both}.intro-drawing{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.intro-drawing path,.intro-drawing rect{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}.intro-guides{opacity:.45}.intro-guides path{animation:canvas-draw .8s var(--ease-out) both;animation-delay:calc(.1s + var(--i) * .12s)}.intro-drawing text{fill:currentColor;font:9px var(--font-mono);letter-spacing:1px;stroke:none;animation:canvas-label .4s ease both;animation-delay:calc(.65s + var(--i) * 70ms)}.intro-part rect,.intro-part path{animation:canvas-draw .68s var(--ease-out) both;animation-delay:calc(.4s + var(--i) * 70ms)}.intro-part-media rect{fill:#ffffff05}.intro-part-media path{opacity:.35}.intro-part-text rect{fill:#ffffff0a;stroke-opacity:.5;animation-name:canvas-draw,canvas-unblock;animation-duration:.68s,.4s;animation-delay:calc(.4s + var(--i) * 70ms),calc(1.6s + var(--i) * 35ms)}.intro-lettering{position:absolute;overflow:hidden;color:transparent;-webkit-text-stroke:.5px #ffffffc0;animation:canvas-letter .5s var(--ease-out) both;animation-delay:calc(1.65s + var(--i) * 45ms)}.intro-caption{position:absolute;inset:auto 32px 18px;display:flex;justify-content:space-between;gap:16px;font:9px/1.4 var(--font-mono);letter-spacing:1px;opacity:.75;animation:canvas-label .5s ease .3s both}.intro-scan{position:absolute;inset:0;opacity:0;background:linear-gradient(to bottom,transparent 0%,#ffffff14 65%,#ffffff65 99%,#fff 100%);transform:translateY(-100%);pointer-events:none}html[data-intro=revealing] .intro-sheet{animation:canvas-wipe 1.1s cubic-bezier(.65,0,.35,1) both}html[data-intro=revealing] .intro-scan{animation:canvas-scan 1.1s cubic-bezier(.65,0,.35,1) both}@keyframes canvas-grid{0%{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}@keyframes canvas-draw{to{stroke-dashoffset:0}}@keyframes canvas-label{0%{opacity:0}to{opacity:1}}@keyframes canvas-unblock{to{opacity:0}}@keyframes canvas-letter{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes canvas-wipe{0%{clip-path:inset(0)}to{clip-path:inset(100% 0 0)}}@keyframes canvas-scan{0%{opacity:0;transform:translateY(-100%)}15%{opacity:1}85%{opacity:.65}to{opacity:0;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.canvas-intro{display:none}.is-entering{opacity:1}}}@layer effects{.case-static{cursor:default}.caption-spoiler{display:block;position:relative;width:fit-content;max-width:100%;-webkit-user-select:none;user-select:none}.caption-spoiler-copy{color:transparent}.spoiler-word{display:inline-block;border-radius:2px;line-height:1}.media-spoiler.media-spoiler-text{background:none}.media-spoiler-text .media-spoiler-grain{display:none}.case-media.is-spoiler{isolation:isolate;background:#fff}.case-media.is-spoiler>img{filter:none;transform:scale(1.12);opacity:1;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:none}.media-spoiler{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;background:#ffffff09}.media-spoiler:has(canvas[data-ready]) .media-spoiler-grain{opacity:0}.media-spoiler canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.media-spoiler-grain{position:absolute;inset:0;opacity:.22;background-image:radial-gradient(circle,#fff 0 .55px,transparent .9px),radial-gradient(circle,#fff 0 .45px,transparent .8px);background-size:7px 11px,13px 9px;background-position:1px 3px,5px 1px}}@layer components{.work{--signature-space:52px;padding-bottom:var(--signature-space)}.work-signature{position:relative;z-index:1;display:flex;justify-content:center;margin-top:calc(var(--signature-space) - var(--space-xl));color:var(--color-secondary)}@media(max-width:1099px){.work-signature{margin-top:calc(var(--signature-space) - var(--space-section))}}.signature{display:block;width:138px;max-width:100%;height:auto;overflow:visible;opacity:.5}}@layer effects{.signature-ink{fill:none;stroke:currentColor;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:1}.signature.is-writing .signature-ink{animation:signature-write 2s linear .25s both}@keyframes signature-write{0%{stroke-dashoffset:1}8%{stroke-dashoffset:.903316}20%{stroke-dashoffset:.795438}29%{stroke-dashoffset:.714942}41%{stroke-dashoffset:.624573}47%{stroke-dashoffset:.582391}54%{stroke-dashoffset:.533617}59%{stroke-dashoffset:.497563}65%{stroke-dashoffset:.453536}73%{stroke-dashoffset:.401487}80%{stroke-dashoffset:.33263}87%{stroke-dashoffset:.271819}95%{stroke-dashoffset:.136702}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.signature-ink{stroke-dashoffset:0}}}
