@font-face{font-family:Even Mono;src:url(../fonts/EvenMono-Regular.woff2)format("woff2"),url(../fonts/EvenMono-Regular.otf)format("opentype");font-style:normal;font-weight:400;font-display:swap}:root{--page-padding:16px;--column:calc(6.25vw - 2px);--media-gap:16px;color:#000;font-synthesis:none;text-rendering:geometricprecision;background:#fff;font-family:Even Mono,monospace;font-size:12px;line-height:16px}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body,html{min-width:320px}body{background:#fff;margin:0;overflow-x:clip}a,button{color:inherit;font:inherit}a{cursor:pointer;text-decoration:none}.rolling-link-text{vertical-align:top;height:16px;line-height:16px;display:inline-block;overflow:hidden}.rolling-link-text__track{will-change:transform;flex-direction:column;transition:transform .36s cubic-bezier(.76,0,.24,1);display:flex}.about-contacts__list a .rolling-link-text__track>span,.language-switch .is-active .rolling-link-text__track>span,.site-nav .is-active .rolling-link-text__track>span{text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:from-font}.cursor-switcher__mode:focus-visible .rolling-link-text__track,.cursor-switcher__mode:hover .rolling-link-text__track,a:focus-visible .rolling-link-text__track,a:hover .rolling-link-text__track{transform:translateY(-16px)}button{border:0;padding:0}figure,h1,h2,p{margin:0}.site-shell{min-height:100dvh}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.secondary-text{opacity:.5}.site-header{z-index:100;pointer-events:none;height:16px;position:fixed;inset:16px 0 auto}.site-header__inner{width:100vw;padding:0 var(--page-padding);white-space:nowrap;grid-template-columns:repeat(16,minmax(0,1fr));display:grid}.site-header a{pointer-events:auto}.identity-trigger{font-feature-settings:"salt" 1;grid-column:1/3;justify-self:start}.identity-trigger,.language-switch a,.site-nav a{text-underline-offset:2px;text-decoration-thickness:from-font}.identity-trigger:focus-visible,.language-switch a:focus-visible,.site-nav a:focus-visible{outline-offset:3px;outline:1px solid}.site-header__menu{display:contents}.language-switch,.site-nav{gap:20px;display:flex}.site-nav{grid-column:3/7;justify-self:start}.language-switch{grid-column:15/17;justify-self:end}.language-switch .is-active,.site-nav .is-active{text-decoration:underline}.page-enter-active,.page-leave-active{transition:opacity .16s}.page-enter-from,.page-leave-to{opacity:0}.work-page{min-height:100dvh;padding-bottom:16px}.project-section{width:100vw;padding-inline:var(--page-padding);grid-template-columns:repeat(16,minmax(0,1fr));align-items:stretch;display:grid}.project-section+.project-section{margin-top:var(--media-gap)}.project-media-stack{gap:var(--media-gap);flex-direction:column;grid-column:7/11;min-width:0;display:flex}.project-caption-shell{grid-column:11/14;align-self:stretch;min-width:0;margin-left:24px;padding:16px 0 24px}.project-caption{flex-direction:column;gap:16px;width:max-content;max-width:100%;display:flex;position:sticky;top:16px}.mobile-project-bar__link .rolling-link-text__track>span,.project-caption__website,.project-caption__website .rolling-link-text__track>span{text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:from-font}.project-caption__website:focus-visible{outline-offset:3px;outline:1px solid}.project-navigator{--preview-index:0;top:50%;left:var(--page-padding);z-index:80;align-items:flex-start;gap:16px;display:flex;position:fixed;transform:translateY(-50%)}.project-navigator__lines{flex-direction:column;width:32px;display:flex}.project-navigator__item{cursor:pointer;background:0 0;align-items:center;width:32px;height:17px;display:flex}.project-navigator__item:focus-visible{outline:none}.project-navigator__line{opacity:.3;background:#000;height:1px;transition:width .18s cubic-bezier(.2,.65,.25,1),opacity .12s;display:block}.project-navigator__line.is-selected{opacity:1}.project-navigator__label{top:calc(var(--preview-index)*17px + 8.5px);opacity:0;pointer-events:none;width:max-content;line-height:16px;transition:opacity .12s;position:absolute;left:48px;transform:translateY(-50%)}.project-navigator.is-previewing .project-navigator__label{opacity:1}.portfolio-media{width:100%;position:relative;overflow:visible}.portfolio-media__asset-clip{background:#f0f0f0;position:absolute;inset:0;overflow:hidden}.portfolio-media--lottie .portfolio-media__asset-clip{background:#93000f}.portfolio-media__lottie,.portfolio-media__lottie svg{width:100%;height:100%}.portfolio-media__asset{-o-object-fit:cover;object-fit:cover;filter:blur(22px);opacity:.86;will-change:filter,opacity,transform;width:100%;height:100%;transition:filter .9s cubic-bezier(.2,.65,.25,1),opacity .7s,transform 1.1s cubic-bezier(.2,.65,.25,1);display:block;transform:scale(1.045)}.portfolio-media.is-revealed .portfolio-media__asset{filter:blur();opacity:1;transform:scale(1)}.like-button{z-index:2;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:16px;align-items:center;gap:0;min-width:32px;height:32px;padding:8px;transition:opacity .14s,transform .14s,background-color .14s,padding .22s;display:flex;position:absolute;bottom:12px;right:12px;transform:translateY(3px)}.like-button.has-count{padding-inline:12px}.like-button--dark{color:#fff;background:#0003}.like-button--light{color:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff3}.like-button.is-liked.like-button--dark{color:#fff;background:#000}.like-button.is-liked.like-button--light{color:#000;background:#fff}.like-button__heart{transform-origin:50%;background:currentColor;flex:0 0 16px;width:16px;height:16px;display:block;-webkit-mask:url(../media/heart.svg) 50%/contain no-repeat;mask:url(../media/heart.svg) 50%/contain no-repeat}.like-button__count{white-space:nowrap;max-width:5ch;margin-left:8px;display:block;overflow:hidden}.like-count-enter-active,.like-count-leave-active{transition:max-width .22s,margin-left .22s,opacity .16s,transform .22s}.like-count-enter-from,.like-count-leave-to{opacity:0;max-width:0;margin-left:0;transform:translateY(5px)}.like-button__burst{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:visible}.like-button__burst i{--burst-x:0px;--burst-y:-44px;--burst-scale:.7;--burst-delay:0s;opacity:0;width:20px;height:20px;animation:like-burst .92s cubic-bezier(.16,.8,.3,1) var(--burst-delay) both;background:#ff272d;position:absolute;bottom:6px;left:17px;-webkit-mask:url(../media/heart-filled.svg) 50%/contain no-repeat;mask:url(../media/heart-filled.svg) 50%/contain no-repeat}.like-button__burst i:first-child{--burst-x:-68px;--burst-y:-56px;--burst-scale:.88;--burst-delay:20ms}.like-button__burst i:nth-child(2){--burst-x:-44px;--burst-y:-104px;--burst-scale:.68;--burst-delay:90ms}.like-button__burst i:nth-child(3){--burst-x:-10px;--burst-y:-136px;--burst-scale:1.42;--burst-delay:0s}.like-button__burst i:nth-child(4){--burst-x:35px;--burst-y:-108px;--burst-scale:.94;--burst-delay:.115s}.like-button__burst i:nth-child(5){--burst-x:72px;--burst-y:-64px;--burst-scale:.72;--burst-delay:45ms}.like-button__burst i:nth-child(6){--burst-x:-82px;--burst-y:-30px;--burst-scale:.62;--burst-delay:.155s}.like-button__burst i:nth-child(7){--burst-x:48px;--burst-y:-48px;--burst-scale:.66;--burst-delay:.185s}.like-button__burst i:nth-child(8){--burst-x:8px;--burst-y:-78px;--burst-scale:.58;--burst-delay:.235s}.like-button__burst i:nth-child(9){--burst-x:82px;--burst-y:-120px;--burst-scale:.52;--burst-delay:.205s}.like-button__burst i:nth-child(10){--burst-x:-66px;--burst-y:-142px;--burst-scale:.48;--burst-delay:.26s}.like-button__burst i:nth-child(11){--burst-x:58px;--burst-y:-158px;--burst-scale:.42;--burst-delay:.3s}.like-button.is-liked .like-button__heart{color:#f34c42;animation:.26s ease-out like-pulse;-webkit-mask-image:url(../media/heart-filled.svg);mask-image:url(../media/heart-filled.svg)}.like-button.is-pending{cursor:wait}.like-button.is-liked,.portfolio-media:focus-within .like-button,.portfolio-media:hover .like-button{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}@keyframes like-pulse{0%{transform:scale(.72)}55%{transform:scale(1.22)}to{transform:scale(1)}}@keyframes like-burst{0%{opacity:0;transform:translateY(4px)scale(.15)rotate(-12deg)}14%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) scale(var(--burst-scale)) rotate(12deg)}}.mobile-project-bar{display:none}.cursor-switcher{z-index:100;color:#000;white-space:nowrap;align-items:center;gap:8px;height:16px;display:flex;position:fixed;bottom:16px;left:16px}.cursor-switcher__mode{height:16px;color:inherit;cursor:pointer;opacity:.5;background:0 0}.cursor-switcher__mode:focus-visible{outline-offset:3px;outline:1px solid}html[data-cursor-mode=heroes]{--cursor-default:url(../cursors/heroes/default.cur) 4 1, auto;--cursor-pointer:url(../cursors/heroes/pointer.cur) 4 1, pointer;--cursor-text:url(../cursors/heroes/text.cur) 15 16, text;--cursor-progress:url(../cursors/heroes/progress.cur) 4 1, progress;--cursor-wait:url(../cursors/heroes/wait.cur) 15 16, wait;--cursor-move:url(../cursors/heroes/move.cur) 15 16, move;--cursor-crosshair:url(../cursors/heroes/crosshair.cur) 15 16, crosshair;--cursor-help:url(../cursors/heroes/help.cur) 15 16, help;--cursor-alias:url(../cursors/heroes/crosshair.cur) 15 16, alias;--cursor-not-allowed:url(../cursors/heroes/not-allowed.cur) 15 16, not-allowed;--cursor-ew-resize:url(../cursors/heroes/ew-resize.cur) 15 16, ew-resize;--cursor-ns-resize:url(../cursors/heroes/ns-resize.cur) 15 16, ns-resize;--cursor-nwse-resize:url(../cursors/heroes/nwse-resize.cur) 15 16, nwse-resize;--cursor-nesw-resize:url(../cursors/heroes/nesw-resize.cur) 15 16, nesw-resize}html[data-cursor-mode=naruto]{--cursor-default:url(../cursors/naruto/default.cur) 4 27, auto;--cursor-pointer:url(../cursors/naruto/pointer.cur) 4 27, pointer;--cursor-text:url(../cursors/naruto/text.cur) 15 16, text;--cursor-progress:url(../cursors/naruto/progress.cur) 15 16, progress;--cursor-wait:url(../cursors/naruto/wait.cur) 15 16, wait;--cursor-move:url(../cursors/naruto/move.cur) 15 16, move;--cursor-crosshair:url(../cursors/naruto/crosshair.cur) 15 16, crosshair;--cursor-help:url(../cursors/naruto/wait.cur) 15 16, help;--cursor-alias:url(../cursors/naruto/move.cur) 15 16, alias;--cursor-not-allowed:url(../cursors/naruto/not-allowed.cur) 15 16, not-allowed;--cursor-ew-resize:url(../cursors/naruto/ew-resize.cur) 15 16, ew-resize;--cursor-ns-resize:url(../cursors/naruto/ns-resize.cur) 15 16, ns-resize;--cursor-nwse-resize:url(../cursors/naruto/ew-resize.cur) 15 16, nwse-resize;--cursor-nesw-resize:url(../cursors/naruto/ns-resize.cur) 15 16, nesw-resize}html[data-cursor-mode=league]{--cursor-default:url(../cursors/league/default.cur) 0 0, auto;--cursor-pointer:url(../cursors/league/pointer.cur) 0 0, pointer;--cursor-text:url(../cursors/league/text.ani), url(../cursors/league/text-fallback.cur) 15 16, text;--cursor-progress:url(../cursors/league/progress.ani), url(../cursors/league/help.cur) 15 16, progress;--cursor-wait:url(../cursors/league/wait.ani), url(../cursors/league/help.cur) 15 16, wait;--cursor-move:url(../cursors/league/move.cur) 15 16, move;--cursor-crosshair:url(../cursors/league/crosshair.cur) 15 16, crosshair;--cursor-help:url(../cursors/league/help.cur) 15 16, help;--cursor-alias:url(../cursors/league/alias.cur) 15 16, alias;--cursor-not-allowed:url(../cursors/league/not-allowed.cur) 15 16, not-allowed;--cursor-ew-resize:url(../cursors/league/ew-resize.cur) 15 16, ew-resize;--cursor-ns-resize:url(../cursors/league/ns-resize.cur) 15 16, ns-resize;--cursor-nwse-resize:url(../cursors/league/nwse-resize.cur) 15 16, nwse-resize;--cursor-nesw-resize:url(../cursors/league/nesw-resize.cur) 15 16, nesw-resize}html[data-cursor-mode=heroes],html[data-cursor-mode=heroes] *,html[data-cursor-mode=league],html[data-cursor-mode=league] *,html[data-cursor-mode=naruto],html[data-cursor-mode=naruto] *{cursor:var(--cursor-default)!important}html[data-cursor-mode] :is(p,h1,h2,input:not([type]),input[type=text],input[type=email],textarea,[contenteditable=true],.secondary-text){cursor:var(--cursor-text)!important}html[data-cursor-mode] :is(a,button,label,[role=button],a *,button *,label *,[role=button] *){cursor:var(--cursor-pointer)!important}html[data-cursor-mode] :is(.is-pending,.is-pending *){cursor:var(--cursor-wait)!important}html[data-cursor-mode] :is([aria-busy=true],[aria-busy=true] *){cursor:var(--cursor-progress)!important}html[data-cursor-mode] :is([draggable=true],[data-cursor-state=move]){cursor:var(--cursor-move)!important}html[data-cursor-mode] [data-cursor-state=crosshair]{cursor:var(--cursor-crosshair)!important}html[data-cursor-mode] [data-cursor-state=help]{cursor:var(--cursor-help)!important}html[data-cursor-mode] [data-cursor-state=alias]{cursor:var(--cursor-alias)!important}html[data-cursor-mode] :is([disabled],[aria-disabled=true],[data-cursor-state=not-allowed]){cursor:var(--cursor-not-allowed)!important}html[data-cursor-mode] [data-cursor-state=ew-resize]{cursor:var(--cursor-ew-resize)!important}html[data-cursor-mode] [data-cursor-state=ns-resize]{cursor:var(--cursor-ns-resize)!important}html[data-cursor-mode] [data-cursor-state=nwse-resize]{cursor:var(--cursor-nwse-resize)!important}html[data-cursor-mode] [data-cursor-state=nesw-resize]{cursor:var(--cursor-nesw-resize)!important}html[data-cursor-mode] .cursor-switcher__mode,html[data-cursor-mode] .cursor-switcher__mode *{cursor:var(--cursor-pointer)!important}html[data-cursor-mode=large],html[data-cursor-mode=large] *{cursor:url(../cursors/large.svg) 10 6,auto!important}.about-page{width:100vw;min-height:100dvh;padding-inline:var(--page-padding);grid-template-columns:repeat(16,minmax(0,1fr));display:grid;position:relative}.about-content{flex-direction:column;grid-column:7/11;align-self:start;gap:32px;width:100%;margin-top:16px;display:flex}.about-section{grid-template-columns:1fr 3fr;align-items:start;display:grid}.about-section__label{font:inherit;white-space:nowrap}.about-section__copy{flex-direction:column;gap:16px;min-width:0;display:flex}.about-contacts{grid-template-columns:var(--column) auto;align-items:start;width:max-content;display:grid}.about-contacts h2{font:inherit}.about-contacts__list{white-space:nowrap;gap:20px;text-decoration:underline;display:flex}.portrait-switcher{bottom:16px;left:calc(50% - var(--column)/2);width:var(--column);aspect-ratio:118/162;cursor:pointer;background:#eee;position:absolute;overflow:hidden}.portrait-switcher:focus-visible{outline-offset:4px;outline:1px solid #000}.portrait-switcher__image{-o-object-fit:contain;object-fit:contain;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.portrait-switcher__image.is-active{animation:.22s ease-out portrait-in}@keyframes portrait-in{0%{opacity:0;transform:translateY(2px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=1471px) and (width>=1025px){.about-content{min-height:calc(100dvh - 32px)}.about-section{display:block}.about-section__label{margin-bottom:12px}.about-contacts{grid-template-columns:calc(var(--column) + 35px) auto;margin-top:auto}.portrait-switcher{aspect-ratio:78/107;left:auto;right:16px}}@media (width<=1024px){:root{--media-gap:12px;--column:calc(25vw - 8px)}html{scrollbar-gutter:auto}.site-header{height:24px}.site-header__inner{background:#fff;justify-content:space-between;align-items:center;width:calc(100vw - 32px);height:24px;margin-inline:16px;padding:4px;display:flex}.identity-trigger{flex:none}.site-header__menu{align-items:center;gap:33px;display:flex}.language-switch,.site-nav{gap:16px}.work-page{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.project-section{width:100vw;padding-inline:0;display:block}.project-section+.project-section{margin-top:12px}.project-media-stack{gap:12px;width:100vw}.project-caption-shell,.project-navigator{display:none}.like-button{opacity:1;visibility:visible;pointer-events:auto;transform:none}.mobile-project-bar{right:auto;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;white-space:nowrap;background:#fff;justify-content:space-between;align-items:center;width:calc(100vw - 32px);height:24px;padding:4px;display:flex;position:fixed;left:16px}.mobile-project-bar__name{text-overflow:ellipsis;max-width:calc(100vw - 132px);overflow:hidden}.mobile-project-bar__link{display:block}.mobile-project-bar__link .rolling-link-text{max-width:100%}.cursor-switcher{display:none}.about-page{width:100vw;min-height:100dvh;padding:0;display:block}.about-content{width:auto;min-height:0;margin:68px 16px 0;padding-inline:4px;display:flex}.about-section{display:block}.about-section__label{margin-bottom:12px}.about-contacts{width:auto;margin-top:0;display:block}.about-contacts__list{margin-top:12px}.portrait-switcher{aspect-ratio:360/497;width:100%;margin-top:20px;display:block;position:relative;inset:auto}}@media (width<=359px){.site-header__menu{gap:20px}.language-switch,.site-nav{gap:12px}}@media (hover:none),(pointer:coarse){.like-button{opacity:1;visibility:visible;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
