:root{--color-blue:#0000f1;--color-cyan:#19ffe8;--color-magenta:#f300c2;--color-light-magenta:#ffeffc;--color-magenta-text:#b8008f;--color-black:#323232;--color-white:#fff;--color-green:#00945b;--color-red:#f30000;--color-yellow:#f3ba00;--color-surface:#fafafa;--color-border:#e5ebf0;--font-primary:"proximanova","Proxima Nova",ui-sans-serif,system-ui,sans-serif;--font-secondary:"Chivo",ui-monospace,"Courier New",monospace;--base-size:clamp(1.5rem,7vw,5rem);--p-size:clamp(1rem,1.5vw,2rem);--outer-margin:clamp(1rem,8vmin,3rem);--gutter:0.5rem;--well:120rem;--radius-sm:0.5rem;--radius-md:1rem;--radius-lg:2rem;--ease:cubic-bezier(0.33,1,0.68,1);--duration:300ms}@media(prefers-reduced-motion:reduce){:root{--duration:1ms}*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--color-white);color:var(--color-black);font-family:var(--font-secondary);line-height:1.5;min-height:100svh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:clip}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,h6,p{margin:0}ol[class],ul[class]{list-style:none;margin:0;padding:0}canvas,img,picture,svg,video{display:block;max-width:100%}img,video{height:auto}button,input,select,textarea{color:inherit;font:inherit}button{background:none;border:0;padding:0}table{border-collapse:collapse;border-spacing:0}a{color:inherit}:target,[id]{scroll-margin-top:5rem}@font-face{font-display:swap;font-family:proximanova;font-style:normal;font-weight:400 900;src:url(/assets/fonts/proxima-nova-bold-italic.woff2) format("woff2"),url(/assets/fonts/proxima-nova-bold-italic.woff) format("woff")}@font-face{font-display:swap;font-family:Chivo;font-style:normal;font-weight:100 900;src:url(/assets/fonts/chivo-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Chivo;font-style:normal;font-weight:100 900;src:url(/assets/fonts/chivo-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}.h1,h1{line-height:1;position:relative}.h1,.h2,h1,h2{font-family:var(--font-primary);font-size:var(--base-size)}.h2,h2{--base-size:clamp(1.25rem,3.5vw,3rem);line-height:1.05}.h3,h3{color:var(--color-blue);font-size:max(1.5rem,var(--base-size)*.75);line-height:1.1}b,strong{font-weight:700}small{font-size:.875rem}.large-text{font-size:clamp(1.125rem,2.2vw,1.5rem)}.large-title{--size:clamp(2rem,5vw,4rem);font-size:var(--size);line-height:1.2}.text-center{text-align:center}.text-left{text-align:left}.text-blue{color:var(--color-blue)}.text-cyan{color:var(--color-cyan)}.text-magenta,.text-pink{color:var(--color-magenta-text)}.text-green{color:var(--color-green)}.text-red{color:var(--color-red)}.text-yellow{color:var(--color-yellow)}.bg-blue,.text-white{color:var(--color-white)}.bg-blue{background-color:var(--color-blue);border-radius:var(--radius-lg);position:relative;z-index:1}.bg-cyan{background-color:var(--color-cyan)}.bg-magenta,.bg-pink{background-color:var(--color-magenta)}.bg-light-pink{background-color:var(--color-light-magenta)}.visually-hidden{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skip-link{background:var(--color-blue);border-bottom-right-radius:var(--radius-sm);color:var(--color-white);left:0;padding:.75rem 1.25rem;position:absolute;text-decoration:none;top:0;transform:translateY(-110%);transition:transform var(--duration) var(--ease);z-index:10000}.skip-link:focus-visible{transform:translateY(0)}:focus-visible{border-radius:2px;outline:3px solid var(--color-magenta);outline-offset:3px}.bg-blue :focus-visible,.dark-bg :focus-visible{outline-color:var(--color-cyan)}@media print{.clippy,.consent,.cursor,.nav-bar{display:none!important}}.container{margin-inline:auto;max-width:var(--well);padding-inline:var(--outer-margin);width:100%}.full-bleed{margin-inline:calc(50% - 50vw);max-width:100vw;width:100vw}section{padding-block:clamp(3rem,10vh,8rem)}main>section:first-child{padding-block-start:clamp(2rem,6vh,4rem)}.row{align-items:start;display:grid;gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr))}.row--center{align-items:center}.row--gap-lg{gap:clamp(1rem,4vw,3rem)}.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}.col-12{grid-column:span 12}@media only screen and (max-width:40rem){[class*=col-]{grid-column:span 12}.col-xs-6{grid-column:span 6}}@media only screen and (min-width:40rem){.col-sm-1{grid-column:span 1}.col-sm-2{grid-column:span 2}.col-sm-3{grid-column:span 3}.col-sm-4{grid-column:span 4}.col-sm-5{grid-column:span 5}.col-sm-6{grid-column:span 6}.col-sm-7{grid-column:span 7}.col-sm-8{grid-column:span 8}.col-sm-9{grid-column:span 9}.col-sm-10{grid-column:span 10}.col-sm-11{grid-column:span 11}.col-sm-12{grid-column:span 12}}@media only screen and (min-width:64rem){.col-md-1{grid-column:span 1}.col-md-2{grid-column:span 2}.col-md-3{grid-column:span 3}.col-md-4{grid-column:span 4}.col-md-5{grid-column:span 5}.col-md-6{grid-column:span 6}.col-md-7{grid-column:span 7}.col-md-8{grid-column:span 8}.col-md-9{grid-column:span 9}.col-md-10{grid-column:span 10}.col-md-11{grid-column:span 11}.col-md-12{grid-column:span 12}}.auto-grid{display:grid;gap:var(--auto-grid-gap,1rem);grid-template-columns:repeat(auto-fit,minmax(var(--min,16rem),1fr))}.gap-none{gap:0}.mt-none{margin-block-start:0}.pt-none{padding-block-start:0}.mb-none{margin-block-end:0}.pb-none{padding-block-end:0}.ml-none{margin-inline-start:0}.pl-none{padding-inline-start:0}.mr-none{margin-inline-end:0}.pr-none{padding-inline-end:0}.mv-none{margin-block:0}.pv-none{padding-block:0}.mh-none{margin-inline:0}.ph-none{padding-inline:0}.ma-none{margin:0}.pa-none{padding:0}.gap-xs{gap:.25rem}.mt-xs{margin-block-start:.25rem}.pt-xs{padding-block-start:.25rem}.mb-xs{margin-block-end:.25rem}.pb-xs{padding-block-end:.25rem}.ml-xs{margin-inline-start:.25rem}.pl-xs{padding-inline-start:.25rem}.mr-xs{margin-inline-end:.25rem}.pr-xs{padding-inline-end:.25rem}.mv-xs{margin-block:.25rem}.pv-xs{padding-block:.25rem}.mh-xs{margin-inline:.25rem}.ph-xs{padding-inline:.25rem}.ma-xs{margin:.25rem}.pa-xs{padding:.25rem}.gap-sm{gap:.5rem}.mt-sm{margin-block-start:.5rem}.pt-sm{padding-block-start:.5rem}.mb-sm{margin-block-end:.5rem}.pb-sm{padding-block-end:.5rem}.ml-sm{margin-inline-start:.5rem}.pl-sm{padding-inline-start:.5rem}.mr-sm{margin-inline-end:.5rem}.pr-sm{padding-inline-end:.5rem}.mv-sm{margin-block:.5rem}.pv-sm{padding-block:.5rem}.mh-sm{margin-inline:.5rem}.ph-sm{padding-inline:.5rem}.ma-sm{margin:.5rem}.pa-sm{padding:.5rem}.gap-md{gap:1rem}.mt-md{margin-block-start:1rem}.pt-md{padding-block-start:1rem}.mb-md{margin-block-end:1rem}.pb-md{padding-block-end:1rem}.ml-md{margin-inline-start:1rem}.pl-md{padding-inline-start:1rem}.mr-md{margin-inline-end:1rem}.pr-md{padding-inline-end:1rem}.mv-md{margin-block:1rem}.pv-md{padding-block:1rem}.mh-md{margin-inline:1rem}.ph-md{padding-inline:1rem}.ma-md{margin:1rem}.pa-md{padding:1rem}.gap-lg{gap:2rem}.mt-lg{margin-block-start:2rem}.pt-lg{padding-block-start:2rem}.mb-lg{margin-block-end:2rem}.pb-lg{padding-block-end:2rem}.ml-lg{margin-inline-start:2rem}.pl-lg{padding-inline-start:2rem}.mr-lg{margin-inline-end:2rem}.pr-lg{padding-inline-end:2rem}.mv-lg{margin-block:2rem}.pv-lg{padding-block:2rem}.mh-lg{margin-inline:2rem}.ph-lg{padding-inline:2rem}.ma-lg{margin:2rem}.pa-lg{padding:2rem}.gap-xl{gap:4rem}.mt-xl{margin-block-start:4rem}.pt-xl{padding-block-start:4rem}.mb-xl{margin-block-end:4rem}.pb-xl{padding-block-end:4rem}.ml-xl{margin-inline-start:4rem}.pl-xl{padding-inline-start:4rem}.mr-xl{margin-inline-end:4rem}.pr-xl{padding-inline-end:4rem}.mv-xl{margin-block:4rem}.pv-xl{padding-block:4rem}.mh-xl{margin-inline:4rem}.ph-xl{padding-inline:4rem}.ma-xl{margin:4rem}.pa-xl{padding:4rem}.gap-2xl{gap:8rem}.mt-2xl{margin-block-start:8rem}.pt-2xl{padding-block-start:8rem}.mb-2xl{margin-block-end:8rem}.pb-2xl{padding-block-end:8rem}.ml-2xl{margin-inline-start:8rem}.pl-2xl{padding-inline-start:8rem}.mr-2xl{margin-inline-end:8rem}.pr-2xl{padding-inline-end:8rem}.mv-2xl{margin-block:8rem}.pv-2xl{padding-block:8rem}.mh-2xl{margin-inline:8rem}.ph-2xl{padding-inline:8rem}.ma-2xl{margin:8rem}.pa-2xl{padding:8rem}.gap-auto{gap:auto}.mt-auto{margin-block-start:auto}.mb-auto{margin-block-end:auto}.ml-auto{margin-inline-start:auto}.mr-auto{margin-inline-end:auto}.mv-auto{margin-block:auto}.ma-auto{margin:auto}.mh-auto{margin-inline:auto}.full-width{height:auto;width:100%}.position-relative{position:relative}.fit{inset:0;position:absolute}.flex{display:flex}.flex-column{flex-direction:column}.center{align-items:center;justify-content:center}.has-border{border:1px solid var(--color-border);border-radius:var(--radius-sm)}@media only screen and (max-width:40rem){.hide-xs-only{display:none!important}}@media only screen and (min-width:40rem){.show-xs-only{display:none!important}}.nav-bar{background-color:var(--color-light-magenta);height:3.5rem;inset:0 0 auto;position:fixed;transform:translateY(-100%);z-index:999}.nav-bar,.nav-bar:after,.nav-bar:before{transition:transform var(--duration) var(--ease)}.nav-bar:after,.nav-bar:before{background-repeat:no-repeat;background-size:contain;content:"";height:2rem;position:absolute;top:100%;transform:scale(0);width:2rem}.nav-bar:after{background-image:url(/assets/svg/menu-corner-left.svg);left:0;transform-origin:top left}.nav-bar:before{background-image:url(/assets/svg/menu-corner-right.svg);right:0;transform-origin:top right}.nav-bar.is-visible{transform:translateY(0)}.nav-bar.is-visible:after,.nav-bar.is-visible:before{transform:scale(1)}.nav-bar:has(.menu.is-open){transform:none;transition:none}.nav-inside{gap:1rem;height:3.5rem;justify-content:space-between}.nav-inside,.nav-logo{align-items:center;display:flex}.nav-logo{color:var(--color-magenta)}.nav-logo img,.nav-logo svg{height:1.75rem;width:auto}.nav-logo svg path{fill:currentcolor}.menu{position:relative}.menu-list{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end}@media(hover:hover)and (pointer:fine){.menu-list:hover .menu-link:not(:hover){opacity:.3}}.menu-link{color:var(--color-magenta);opacity:.5;padding:1rem;position:relative;text-decoration:none;transition:opacity var(--duration);white-space:nowrap}.menu-link:focus-visible,.menu-link:hover{opacity:1}.menu-link:focus-visible .menu-link-bg path,.menu-link:hover .menu-link-bg path{stroke-dashoffset:0;transition-delay:calc(var(--start, 0)*3ms)}.menu-link[aria-current=page]{opacity:1}.menu-link-bg{height:auto;left:50%;max-height:4rem;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.menu-link-bg path{stroke:currentcolor;stroke-dasharray:var(--len,9999) calc(var(--len, 9999) + 2);stroke-dashoffset:calc(var(--len, 9999) + 1);stroke-width:2;transition:stroke-dashoffset calc(var(--len, 170)*3ms) linear;transition-delay:calc(var(--tail, 0)*3ms)}.menu-toggle{background:var(--color-blue);border:2px solid;border-radius:50%;color:var(--color-white);cursor:pointer;display:none;height:3rem;padding:0;position:relative;width:3rem;z-index:1001}@media only screen and (max-width:40rem){.menu-toggle{display:block}}.menu-toggle[hidden]{display:none}.menu-toggle__bars{inset:0;position:absolute}.menu-toggle__bars:after,.menu-toggle__bars:before{background:currentcolor;border-radius:2px;content:"";height:2px;left:50%;position:absolute;transition:transform var(--duration) var(--ease),top var(--duration) var(--ease);width:1.125rem}.menu-toggle__bars:before{top:calc(50% - .25rem);transform:translateX(-50%)}.menu-toggle__bars:after{top:calc(50% + .25rem);transform:translateX(-50%)}.menu.is-open .menu-toggle__bars:before{top:50%;transform:translateX(-50%) rotate(45deg)}.menu.is-open .menu-toggle__bars:after{top:50%;transform:translateX(-50%) rotate(-45deg)}.nav-bar .menu-toggle{background:transparent;color:var(--color-magenta-text)}.nav-bar .menu.is-open .menu-toggle{background:var(--color-blue);color:var(--color-white)}@media only screen and (max-width:40rem){.js .menu-list{align-items:flex-start;background:var(--color-blue);flex-direction:column;gap:.5rem;inset:0;justify-content:center;opacity:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--outer-margin);padding-top:calc(var(--outer-margin) + 4rem);position:fixed;transform:translateY(-1rem);transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease),visibility 0s linear var(--duration);visibility:hidden;z-index:1000}.js .menu.is-open .menu-list{opacity:1;transform:none;transition-delay:0s;visibility:visible}.js .menu-list .menu-link{color:var(--color-white);display:block;font-size:clamp(2rem,11vw,3rem);line-height:1.1;opacity:1;padding:.5rem .75rem}.js .menu-list .menu-link--lang{font-size:1.25rem;opacity:.7}.js .menu-list .menu-link-bg{display:none}}.is-menu-open,.is-menu-open body{overflow:hidden}.header-menu .menu-list,.site-header .menu-list{border:2px solid;border-radius:4rem;padding:1rem 2rem}.header-menu .menu-link,.site-header .menu-link{padding:1rem}.header-menu .menu{position:absolute;right:var(--outer-margin);top:var(--outer-margin);z-index:20}.header-menu .menu-list{background:var(--color-blue);border-color:hsla(0,0%,100%,.2)}.header-menu .menu-link{color:var(--color-white)}.header-menu .menu-link-bg{filter:saturate(0) brightness(3);opacity:.7}@media only screen and (max-width:40rem){.js .header-menu .menu-list{border:0;border-radius:0;padding:var(--outer-margin);padding-top:calc(var(--outer-margin) + 4rem)}}.site-header{padding-block:var(--outer-margin) 0;position:relative;z-index:20}.site-header__inside{align-items:center;display:flex;gap:1rem;justify-content:space-between}.site-header__logo{align-items:center;color:var(--color-magenta);display:flex;flex-shrink:0}.site-header__logo svg{height:2.25rem;width:auto}.site-header__logo svg path{fill:currentcolor}.site-header .menu-list{background:var(--color-light-magenta);border-color:var(--color-light-magenta)}.site-header .menu-link{color:var(--color-magenta-text);opacity:.75}.site-header .menu-link:focus-visible,.site-header .menu-link:hover,.site-header .menu-link[aria-current=page]{opacity:1}@media(hover:hover)and (pointer:fine){.site-header .menu-list:hover .menu-link:not(:hover){opacity:.3}}@media only screen and (max-width:40rem){.js .site-header .menu-list{background:var(--color-blue);border:0;border-radius:0;padding:var(--outer-margin);padding-top:calc(var(--outer-margin) + 4rem)}.js .site-header .menu-list .menu-link{color:var(--color-white)}}.site-header+main .case__hero{padding-block-start:clamp(2rem,7vh,4.5rem)}.menu-link--lang{font-weight:700;letter-spacing:.08em;opacity:.7}.button{background-color:var(--color-light-magenta);border-radius:var(--radius-sm);color:var(--color-magenta-text);display:inline-block;padding:.5rem 1rem;text-decoration:none;transition:transform var(--duration) var(--ease),background-color var(--duration),color var(--duration);white-space:nowrap}@media(hover:hover)and (pointer:fine){.button:hover{background-color:var(--color-magenta);color:var(--color-white);transform:scale(.9) rotate(-3deg)}}.button:active{transform:scale(.8) rotate(-1deg)}.button--ghost{background-color:hsla(0,0%,100%,.2);color:var(--color-white)}@media(hover:hover)and (pointer:fine){.button--ghost:hover{background-color:var(--color-white);color:var(--color-magenta)}}.marquee{--marquee-bleed-start:0.1em;--marquee-bleed-end:0.24em;display:flex;font-size:clamp(3rem,10vw,7rem);font-weight:100;line-height:1;margin-block-end:calc(var(--base-size)*-.3);margin-block-start:calc(var(--marquee-bleed-start)*-1);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);max-width:100%;overflow:hidden;padding-block:var(--marquee-bleed-start) var(--marquee-bleed-end);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.marquee__content{animation:marquee var(--marquee-duration,24s) linear infinite;display:flex;flex-shrink:0;gap:.4ch;padding-inline-end:.4ch;will-change:transform}@keyframes marquee{to{transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){.marquee__content{animation:none}.marquee__content[aria-hidden=true]{display:none}}.marquee--small{font-size:1rem;font-weight:400;margin-block-end:0}.marquee--grey{color:rgba(0,0,0,.1)}.marquee--cyan{color:var(--color-cyan)}.cursor{display:none}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.js .cursor{display:block;inset:0;pointer-events:none;position:fixed;z-index:9999}.js body{cursor:none}.js [contenteditable],.js input,.js textarea{cursor:auto}}.cursor__ball{left:0;position:fixed;top:0;will-change:transform}.cursor__ball--small svg{transition:transform .2s var(--ease)}.cursor__ball--big circle{fill:transparent;stroke:var(--color-blue);stroke-width:2px;transform-box:fill-box;transform-origin:center;transition:fill .2s,stroke .2s,transform .2s var(--ease);vector-effect:non-scaling-stroke}.cursor__ball--small circle{fill:var(--color-blue);stroke:none;transition:fill .2s}.cursor.is-on-dark .cursor__ball--big circle{fill:hsla(0,0%,100%,.5);stroke:none}.cursor.is-on-dark .cursor__ball--small circle{fill:var(--color-white)}.cursor.is-hovering .cursor__ball--big circle{fill:hsla(0,0%,100%,.2);transform:scale(2)}.cursor.is-pressed .cursor__ball--small svg{transform:scale(.5)}@property --drag-scale{syntax:"<number>";inherits:false;initial-value:1}.sticker,[data-speed]{transform:translate(var(--dx,0),calc(var(--dy, 0px) + var(--py, 0px))) scale(var(--drag-scale,1))}.big-illustration [data-speed]{transform:none;translate:0 var(--py,0)}.sticker{position:absolute;transition:filter var(--duration);z-index:10}.sticker img{max-width:none}.sticker:not(.draggable){pointer-events:none}.draggable,.sticker:not(.draggable){-moz-user-select:none;user-select:none;-webkit-user-select:none}.draggable{cursor:grab;touch-action:none;-webkit-touch-callout:none;filter:drop-shadow(0 0 0 rgba(0,0,0,0));transition:--drag-scale .52s cubic-bezier(.34,1.4,.5,1),filter .75s cubic-bezier(.6,0,.35,1)}.draggable.is-dragging{cursor:grabbing;z-index:100;--drag-scale:1.12;filter:drop-shadow(0 1.75rem 1.5rem rgba(0,0,0,.22));transition:--drag-scale .42s cubic-bezier(.2,.8,.3,1),filter .42s ease-out}@media(prefers-reduced-motion:no-preference){.draggable.is-dragging{animation:sticker-hover 2s ease-in-out .42s infinite alternate}}@keyframes sticker-hover{0%{filter:drop-shadow(0 1.75rem 1.5rem rgba(0,0,0,.22))}to{filter:drop-shadow(0 2.5rem 2.1rem rgba(0,0,0,.13))}}.bounding-box{inset:0;mix-blend-mode:difference;opacity:0;position:absolute;transition:opacity var(--duration)}.bounding-box:after,.bounding-box:before{content:"";inset:0;position:absolute}.bounding-box:before{border:1px dashed #fff}.bounding-box:after{background-image:url(/assets/svg/bounding-box.svg),url(/assets/svg/bounding-box.svg),url(/assets/svg/bounding-box.svg),url(/assets/svg/bounding-box.svg);background-position:0 0,100% 0,0 100%,100% 100%;background-repeat:no-repeat;inset:-6px;z-index:10}.draggable.is-dragging .bounding-box,.draggable:focus-visible .bounding-box,.draggable:hover .bounding-box{opacity:1}@media(prefers-reduced-motion:no-preference){.spark{animation:spark 4s ease-in-out infinite alternate}.oscilate,.spark{transform-origin:center}.oscilate{animation:oscilate 3s ease-in-out infinite alternate}}@keyframes spark{0%{transform:scale(1.05)}to{transform:scale(.95)}}@keyframes oscilate{0%{transform:rotate(1deg)}to{transform:rotate(-1deg)}}.reveal-text .char{display:inline-block;will-change:transform}.js .reveal-text.is-ready .char{opacity:0;transform:translateY(100%)}.js .reveal-text.is-ready .word{display:inline-block;overflow:hidden;vertical-align:top}@media(prefers-reduced-motion:no-preference){.js .reveal-text.is-ready.is-revealed .char{animation:char-in .6s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(var(--delay, 0s) + min(var(--i)*14ms,.7s))}}@media(prefers-reduced-motion:reduce){.js .reveal-text.is-ready .char{opacity:1;transform:none}}@keyframes char-in{to{opacity:1;transform:translateY(0)}}.js .reveal-lines.is-ready .line{overflow:hidden}@media(prefers-reduced-motion:no-preference){.js .reveal-lines.is-ready .line{clip-path:inset(0 100% 0 0)}.js .reveal-lines.is-ready.is-revealed .line{animation:line-wipe .4s var(--ease) forwards;animation-delay:calc(var(--delay, 0s) + var(--i)*.1s)}}@keyframes line-wipe{to{clip-path:inset(0 0 0 0)}}.reveal{--reveal-shift:2rem}@media(prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transform:translateY(var(--reveal-shift)) scale(.98);transition:opacity .6s var(--ease),transform .6s var(--ease)}.js .reveal.is-revealed{opacity:1;transform:none}.js .reveal-stamp>*{opacity:0}.js .reveal-stamp.is-revealed>*{animation:stamp-in .5s linear forwards;animation-delay:calc(var(--delay, 0s) + var(--i, 0)*.3s)}}@keyframes stamp-in{0%{opacity:0;transform:scale(3)}10%{opacity:1;transform:scale(2.849)}15%{transform:scale(2.66)}20%{transform:scale(2.395)}25%{transform:scale(2.055)}30%{transform:scale(1.639)}36.36%{transform:scale(1)}45%{transform:scale(1.362)}54.55%{transform:scale(1.5)}65%{transform:scale(1.347)}72.73%{transform:scale(1)}81.82%{transform:scale(1.125)}90.91%{transform:scale(1)}95.45%{transform:scale(1.031)}to{opacity:1;transform:scale(1)}}.js .draw-path{stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200)}@media(prefers-reduced-motion:no-preference){.js .is-revealed .draw-path{stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease);transition-delay:var(--delay,0s)}}@media(prefers-reduced-motion:reduce){.draw-path,.js .draw-path{stroke-dashoffset:0}}.site-footer{padding-block:clamp(3rem,10vh,8rem)}.footer__panel{background-image:url(/assets/svg/lets-talk.svg);background-position:top 80% center;background-repeat:no-repeat;background-size:contain;padding:calc(var(--base-size)*.75) calc(var(--base-size)*.5)}@media only screen and (max-width:40rem){.footer-contacts-list{text-align:center}}.footer-contacts-item{position:relative;z-index:0}.footer-contacts-item.is-copying{z-index:99}.footer-contacts-link{color:var(--color-cyan);display:inline-block;font-size:max(1rem,var(--base-size)/4.5);padding:1rem;position:relative;text-decoration:underline;transition:transform var(--duration) var(--ease);white-space:nowrap;width:-moz-fit-content;width:fit-content;z-index:1}@media(hover:hover)and (pointer:fine){.footer-contacts-link:hover{transform:scale(.95) rotate(-2deg);z-index:99}}@media only screen and (max-width:40rem){.footer-contacts-link{margin-inline:auto}}.footer-contacts-item--strong .footer-contacts-link{font-family:var(--font-primary);font-size:max(1.2rem,var(--base-size)/2);text-decoration:none}.copied{left:50%;opacity:0;pointer-events:none;position:absolute;top:0;width:8rem;z-index:999}.is-copying .copied{animation:stamp 2.4s var(--ease) forwards}@keyframes stamp{0%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(var(--stamp-rotate,-6deg))}12%{transform:translate(-50%,-50%) scale(1) rotate(var(--stamp-rotate,-6deg))}70%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1) rotate(var(--stamp-rotate,-6deg))}}.footer-meta{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem 1rem;justify-content:flex-start;line-height:1.5;margin-block-start:2rem}@media only screen and (max-width:40rem){.footer-meta{justify-content:center;text-align:center}}.footer-meta p{line-height:inherit;margin:0}.footer-meta__copy{font-weight:700}.footer-meta__made{align-items:baseline;display:flex;font-weight:400;gap:.5ch}.loop{display:inline-flex;height:1.5em;overflow:hidden;vertical-align:bottom}.loop__line{align-items:center;display:flex;height:1.5em;justify-content:center}@media(prefers-reduced-motion:no-preference){.loop__lines{animation:loop-lines 3s ease-in-out infinite alternate}}@keyframes loop-lines{0%,40%{transform:translateY(0)}60%,to{transform:translateY(-1.5em)}}.clippy-wrap{--clippy-size:10rem;bottom:var(--clippy-bottom,2vw);left:var(--clippy-x,auto);pointer-events:none;position:fixed;right:var(--clippy-right,2vw);top:var(--clippy-y,auto);width:var(--clippy-size);z-index:900}.clippy-wrap.is-dragging{cursor:grabbing;transition:none}.clippy-wrap:has(.clippy-dialog:hover){--l-brow-raise:-7px;--l-brow-tilt:-5deg}@media only screen and (max-width:40rem){.clippy-wrap{--clippy-size:8rem}}.clippy-toggle{cursor:grab;display:block;pointer-events:auto;touch-action:none;width:100%}.clippy-wrap.is-dragging .clippy-toggle{cursor:grabbing}.clippy-close{border-radius:50%;color:var(--color-white);cursor:pointer;display:grid;font-size:1.5rem;height:1.75rem;line-height:1;place-items:center;position:absolute;right:.6rem;top:.6rem;width:1.75rem}.clippy-close:focus-visible,.clippy-close:hover{background:rgba(0,0,0,.15)}.clippy-dialog{background:var(--color-magenta);border-radius:var(--radius-md);bottom:calc(100% + .5rem);color:var(--color-white);max-width:min(18rem,80vw);padding:1.5rem;padding-inline-end:2.5rem;pointer-events:auto;position:absolute;right:0;transform-origin:calc(100% - 1rem) calc(100% + 2.43rem);width:18rem}.clippy-wrap.is-left .clippy-dialog{left:0;right:auto;transform-origin:1rem calc(100% + 2.43rem)}.clippy-wrap.is-left .clippy-dialog:after{left:1rem;right:auto;scale:-1 1}.clippy-wrap.is-top .clippy-dialog{bottom:auto;top:calc(100% + .5rem)}.clippy-wrap.is-top .clippy-dialog:after{bottom:99%;scale:1 -1;top:auto}.clippy-wrap.is-top.is-left .clippy-dialog:after{scale:-1 -1}.clippy-wrap .clippy-dialog p{font-size:1rem;line-height:1.2;margin:0}.clippy-dialog:after{background-image:url(/assets/svg/dialog-tip.svg);background-repeat:no-repeat;background-size:contain;content:"";height:2.43rem;position:absolute;right:1rem;top:99%;width:2.75rem}@media only screen and (max-width:40rem){.clippy-dialog:after{transform:scale(.7) rotate(318deg) translate(148%,-87%);transform-origin:top right}}@media(prefers-reduced-motion:no-preference){.clippy-dialog.is-speaking{animation:clippy-pop .9s cubic-bezier(.34,1.56,.64,1)}}@keyframes clippy-pop{0%{transform:scale(.6) rotate(-18deg)}to{transform:scale(1) rotate(0deg)}}.clippy-buttons{display:flex;flex-wrap:wrap;font-size:1rem;gap:.5rem;line-height:1;margin-block-start:1rem}.clippy{height:auto;width:100%;--lid-duration:180ms;--eye-open-bottom:calc(0.5 + var(--eye-open, 1)*0.5)}.clippy g,.clippy path{transform-origin:center}.clippy .bottom-lid,.clippy .top-lid{transition:transform var(--lid-duration) var(--ease)}.clippy #r-bottom-lid,.clippy #r-top-lid{transform:rotate(9.88deg);transform-box:fill-box;transform-origin:center}.clippy .pupil{transform:translate(var(--px,0),var(--py,0)) scale(var(--pupil-scale,1));transform-box:fill-box;transform-origin:center;transition:transform .19s var(--ease)}.clippy.is-furious{--pupil-scale:0.5}@media(prefers-reduced-motion:no-preference){.clippy.is-furious .eyes{animation:clippy-eyes-tremble 80ms linear infinite}}.clippy #l-brow,.clippy #r-brow{transform-box:fill-box;transform-origin:center;transition:transform var(--lid-duration) var(--ease)}.clippy #l-brow{transform:translateY(var(--l-brow-raise,0)) rotate(var(--l-brow-tilt,0deg))}.clippy .is-annoyed #l-brow,.clippy .is-annoyed #r-brow,.clippy.is-mad #l-brow,.clippy.is-mad #r-brow{transition-duration:45ms;transition-timing-function:cubic-bezier(.4,0,1,1)}.clippy .is-annoyed #r-brow{transform:translateY(2px) rotate(-7deg)}.clippy .is-annoyed #l-brow{transform:translateY(2px) rotate(7deg)}.clippy.is-mad #r-brow{transform:translateY(-12px) translateX(-13px) rotate(-40deg)}.clippy.is-mad #l-brow{transform:translateY(2px) translateX(5px) rotate(30deg)}.clippy .is-poked:not(.open) .bottom-lid,.clippy .is-poked:not(.open) .top-lid{transition-duration:45ms;transition-timing-function:cubic-bezier(.4,0,1,1)}@media(prefers-reduced-motion:no-preference){.clippy .is-poked{animation:clippy-eye-flinch .26s ease-out;transform-box:fill-box;transform-origin:center}}.clippy .open #l-top-lid{transform:translateY(calc(-9%*var(--eye-open, 1)))}.clippy .open #l-bottom-lid{transform:translateY(calc(6%*var(--eye-open-bottom)))}.clippy .open #r-top-lid{transform:rotate(9.88deg) translateY(calc(-25px*var(--eye-open, 1)))}.clippy .open #r-bottom-lid{transform:rotate(9.88deg) translateY(calc(25px*var(--eye-open-bottom)))}@keyframes clippy-eyes-tremble{0%,to{translate:-.8px .4px}33%{translate:.7px -.6px}66%{translate:.4px .7px}}@keyframes clippy-eye-flinch{0%,to{transform:translate(0) rotate(0deg)}20%{transform:translate(-2.5px,1px) rotate(-1deg)}45%{transform:translate(2px,-1px) rotate(.8deg)}70%{transform:translate(-1.2px,.5px) rotate(-.4deg)}}.clippy-eye{cursor:pointer}.lightbox{background:transparent;border:0;max-height:95vh;max-width:none;overflow:visible;padding:0;width:min(95vw,80rem)}.lightbox::backdrop{backdrop-filter:blur(1rem);background:rgba(0,0,0,.8)}.lightbox img{border-radius:var(--radius-sm);box-shadow:0 2rem 4rem rgba(0,0,0,.2);height:auto;max-height:90vh;-o-object-fit:contain;object-fit:contain;width:100%}.lightbox[open] img{animation:img-enter var(--duration) ease-out backwards}.lightbox__close{position:fixed;right:1rem;top:1rem;z-index:1}@keyframes img-enter{0%{opacity:0;transform:scale(.8) rotate(-3deg)}}.preview-image{border:0;cursor:zoom-in;display:block;position:relative}.preview-image:after{background-image:url(/assets/svg/preview-image.svg);background-position:50%;background-repeat:no-repeat;background-size:5rem;content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity var(--duration) var(--ease),background-size var(--duration) var(--ease)}.preview-image img{transition:transform var(--duration) var(--ease)}@media(hover:hover)and (pointer:fine){.preview-image:focus-visible img,.preview-image:hover img{transform:scale(.9) rotate(-2deg)}.preview-image:focus-visible:after,.preview-image:hover:after{background-size:6rem;opacity:1}}.home .h1,.home .h2,.home h1,.home h2{text-align:center;text-transform:uppercase}.home p{font-size:var(--p-size);line-height:1.3;margin-block-end:1rem;max-width:43rem}.home .line,.home .lines{display:block}.home .line{background-color:var(--color-light-magenta);color:var(--color-blue);margin-inline:auto;padding:.25rem 1rem;white-space:nowrap;width:-moz-fit-content;width:fit-content}.home .line.bg-magenta,.home .line.bg-pink{background-color:var(--color-magenta)}@media only screen and (max-width:40rem){.home .lines{background-color:var(--color-light-magenta);display:inline}.home .lines:has(.bg-magenta){background-color:var(--color-magenta)}.home .line{display:inline;padding:0;white-space:normal}}.home .color-cyan{color:var(--color-cyan)}.home .color-blue{color:var(--color-blue)}.home .color-grey{color:rgba(0,0,0,.1)}.hero{background-color:var(--color-blue);background-image:url(/assets/svg/square-bg.svg);background-position:0 0;color:var(--color-white);display:flex;flex-direction:column;justify-content:center;overflow:hidden;position:relative}@media only screen and (min-width:40rem){.hero{min-height:100svh}}@media(prefers-reduced-motion:no-preference){.hero{animation:background-movement 50s linear infinite}}@keyframes background-movement{0%{background-position:0 0}to{background-position:100% 400%}}.hero__container{padding-inline-start:10%}@media only screen and (min-width:40rem){.hero__container{padding-inline-start:17%}}#my-name{background-color:var(--color-cyan);color:var(--color-blue);display:block;font-size:clamp(1rem,3.5vw,3rem);padding:.25rem 1rem;position:relative;transform:rotate(-5deg);transform-origin:bottom right;white-space:nowrap;width:-moz-fit-content;width:fit-content;z-index:2}#my-name:after{background-color:var(--color-cyan);content:"";inset:0;position:absolute;z-index:-1}#my-name:before{background-color:var(--color-magenta);color:var(--color-cyan);content:"ROGER JUNIOR IS ROGER JUNIOR IS ROGER JUNIOR IS ROGER JUNIOR IS";font-size:inherit;left:0;padding:.25rem 1rem;position:absolute;top:0;transform:rotate(-35deg);transform-origin:top left;white-space:nowrap;z-index:-1}#my-name:before,.tagline{width:-moz-fit-content;width:fit-content}.tagline{align-items:center;display:flex;gap:1rem;margin-inline:auto}.tagline-text{perspective:10cm;position:relative;transform-style:preserve-3d;width:calc(var(--base-size)*8.25);z-index:3}.tagline-text:has(.is-dragging){z-index:100}.phrase{backface-visibility:hidden;transform:rotateX(0deg);transition:transform .5s var(--ease)}.phrase--one{position:relative;z-index:2}.phrase--two{inset:0;position:absolute;z-index:1}.phrase--two,.tagline-text.is-switched .phrase--one{transform:rotateX(180deg)}.tagline-text.is-switched .phrase--two{transform:rotateX(0deg)}.switch-button-wrap{display:none}.switch-button{height:calc(var(--base-size)*1.25);position:relative;width:auto;z-index:100}.switch-button #circle{transform-origin:22% 50%;transition:transform .6s ease-in-out}.switch-button[aria-pressed=true] #circle{transform:rotate(1turn)}.big-dog{right:84%;top:5%}.big-dog img{width:calc(var(--base-size)*3)}.disk{bottom:100%;left:90%}.disk img{height:calc(var(--base-size)*1.25)}.ok-hand{left:105%}.ok-hand img{height:calc(var(--base-size)*1.25)}.line-01{right:80%;top:-100%;z-index:0}.line-02{left:70%;top:50%;z-index:0}.star-07{right:100%;top:100%;z-index:0}.star-08{left:95%;top:-40%;z-index:0}#open-to-freelance{display:block;margin-block-start:1rem;max-width:none;text-align:center}@media only screen and (max-width:40rem){#open-to-freelance{margin-block-start:4rem}}#open-to-freelance img{display:inline;vertical-align:middle}.scroll-down{background-color:var(--color-white);border-radius:var(--radius-md);color:var(--color-blue);height:6rem;left:2rem;opacity:0;overflow:hidden;padding:1rem;position:absolute;right:2rem;top:100%;transition:transform .6s var(--ease),opacity 1ms,border-radius .6s var(--ease),left .6s var(--ease),right .6s var(--ease);white-space:nowrap}.scroll-down.is-shown{opacity:1;transform:translateY(-50%)}.scroll-down.is-scrolled{border-radius:0;color:transparent;left:0;right:0;transform:translateY(0)}.home .big-intro{font-size:clamp(1.5rem,5vw,5rem);line-height:1.3;margin-block:10vh;max-width:none}.home .big-intro__emoji{display:inline;height:1em;padding-inline:.2em;transform:scale(1.6);vertical-align:middle;width:auto}.emoji-container,.rocket-container{display:inline-block}.rocket-container{position:relative}.rocket-line{height:5em;max-width:none;position:absolute;right:107%;top:115%;width:auto;z-index:2}.erasure{position:relative;white-space:nowrap}.erasure:after{background-image:url(/assets/svg/erasure_animated.svg);background-position:center 100%;background-repeat:no-repeat;background-size:contain;content:"";display:none;inset:0;position:absolute}.erasure.is-revealed:after{display:block}#bridge-the-gap p:first-of-type{margin-block-start:10vh}#illustration{height:auto;margin-block-start:-20%;width:100%}#good-design .p-container{max-width:calc(var(--p-size)*17)}.windows-error-container{position:relative}#windows-error{background-color:var(--color-light-magenta);border-radius:var(--radius-lg);height:80vh;max-height:50vw;width:100%}.windows-error-title{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}#window-frame{height:auto;left:100vw;max-width:50vw;position:absolute;z-index:-1}.you-get{background-color:var(--color-surface);border-radius:var(--radius-md);height:100%;outline:0 solid transparent;padding:var(--outer-margin);position:relative;transition:transform var(--duration) var(--ease),outline var(--duration)}@media(hover:hover)and (pointer:fine){.you-get:hover{outline:.25rem solid rgba(0,0,0,.05);transform:scale(1.1) rotate(-2deg);z-index:10}}.you-get strong{color:var(--color-blue)}.you-get .full-width{margin-block-end:2rem}.you-get-icons{height:min(6vw,1.5rem);margin-block-start:2rem;max-width:100%;width:auto}.awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));width:100%}.award{--stamp-tilt:0deg;text-align:center}.award:first-of-type{--stamp-tilt:1deg}.award:nth-of-type(2){--stamp-tilt:-1deg}.award:nth-of-type(3){--stamp-tilt:3deg}.award:nth-of-type(4){--stamp-tilt:-2deg}.award .award-stamp{transform:rotate(var(--stamp-tilt)) scale(.8);transition:transform var(--duration) var(--ease)}@media(hover:hover)and (pointer:fine){.award .award-stamp:hover{transform:rotate(2deg) scale(.7)}}.award-date{font-weight:700;margin-block-start:-1rem}#final-arrow{height:auto;left:50%;max-width:50vw;overflow:visible;position:absolute;transform:translateX(-100%) translateY(1rem);transform-origin:top right;width:calc(var(--base-size)*3.5);z-index:3}.switch-button-wrap{background:none;border:0;cursor:pointer;padding:0}#open-to-freelance small{font-size:.875rem}.home .text-left{text-align:left}.home .text-center{text-align:center}.case{line-height:1.5}.case .container{max-width:120ch}.case h2{--base-size:clamp(1.25rem,1vw,1.5rem);background-color:var(--color-light-magenta);border-radius:var(--radius-lg);color:var(--color-blue);line-height:1.5;margin-block:2.5rem 1rem;margin-inline-start:-.75em;padding:.125em .75em .06125em;text-transform:uppercase;width:-moz-fit-content;width:fit-content}.case .case__section--light-pink h2{background-color:var(--color-white)}.case h3{color:var(--color-magenta-text);font-family:var(--font-secondary);font-size:1rem;font-weight:700;line-height:1.5;margin-block:1.5rem .5rem}.case p{font-size:clamp(1rem,2vw,1.25rem);line-height:1.25;margin-block:1rem}.case p.large-text{font-size:clamp(1.125rem,2.2vw,1.5rem);line-height:1.25}.case p.large-title{--size:clamp(2rem,5vw,4rem);font-size:var(--size);line-height:1.2;margin-block:2rem}.case__section{padding-block:0}.case__section>.container{padding-block:clamp(1rem,3vh,2rem)}.case__section--light-pink{background-color:var(--color-light-magenta);margin-block:clamp(2rem,6vh,4rem)}.case__section--light-pink>.container{padding-block:clamp(2.5rem,7vh,5rem)}.case__section--blue{background-color:var(--color-blue);color:var(--color-white);margin-block:clamp(2rem,6vh,4rem)}.case__section--blue>.container{padding-block:clamp(2.5rem,7vh,5rem)}.case__section--blue h2{background-color:var(--color-white)}.case__section--blue h3,.case__section--blue p{color:var(--color-white)}.case__rail{display:flex;flex-direction:column;gap:1.5rem;margin-block-start:2.5rem}.case__rail .case__figure{margin-block:0}.case__rail .case__table-wrap{padding:.5rem}.case__rail .case__table{font-size:.8125rem}.case__hero{padding-block:clamp(4rem,14vh,9rem) clamp(2rem,6vh,4rem)}.case__meta{color:var(--color-magenta-text);display:flex;flex-wrap:wrap;font-size:.875rem;gap:.5rem 2rem;letter-spacing:.08em;margin-block-start:1.5rem;text-transform:uppercase}.case__figure{margin-block:2.5rem}.case__figure img{border-radius:var(--radius-md);height:auto;width:100%}.case__figure figcaption{color:rgba(0,0,0,.65);font-size:.9375rem;line-height:1.5;margin-block-end:1rem;text-align:center}.case__band{background-color:var(--color-light-magenta);border-radius:var(--radius-lg);margin-block:4rem;padding-block:clamp(2rem,6vh,4rem)}.case__gallery{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;padding-block:3rem}.case__gallery img{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:40vh;max-width:100%;width:auto}.case__table{font-size:.9375rem;width:100%}.case__table caption{font-weight:700;margin-block-end:.75rem;text-align:left}.case__table td,.case__table th{border-bottom:1px solid var(--color-border);padding:.5rem 1rem}.case__table th{font-size:.8125rem;letter-spacing:.05em;text-align:left;text-transform:uppercase}.case__table td:last-child,.case__table th:last-child{font-variant-numeric:tabular-nums;text-align:right}.case__table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto;padding:1rem}.case__quote{border-inline-start:4px solid var(--color-magenta);font-size:clamp(1.25rem,3vw,2rem);line-height:1.3;margin-block:3rem;padding-inline-start:1.5rem}.case__quote cite{color:var(--color-magenta-text);display:block;font-size:1rem;font-style:normal;margin-block-start:1rem}.case__stats{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));margin-block:2.5rem}.case__stat dt{color:var(--color-magenta);font-size:.875rem;letter-spacing:.06em;text-transform:uppercase}.case__stat dd{color:var(--color-blue);font-family:var(--font-primary);font-size:clamp(2rem,5vw,3.5rem);line-height:1;margin:0}.chatgpt-p{background-color:#444654;border-radius:var(--radius-md);color:var(--color-white);flex:1;margin-inline-start:1rem;padding:1rem}.type-caret{animation:caret 1s steps(1) infinite;background-color:currentcolor;display:inline-block;height:1em;vertical-align:text-bottom;width:1ch}@keyframes caret{0%,30%{opacity:0}31%,to{opacity:1}}.case__next{align-items:baseline;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-block-start:4rem;padding-block-start:2rem}.case__next-label{color:var(--color-magenta-text);font-size:.875rem;letter-spacing:.08em;text-transform:uppercase}.case__next-title{color:var(--color-blue);font-family:var(--font-primary);font-size:clamp(1.5rem,4vw,2.5rem);text-decoration:none}@media(hover:hover)and (pointer:fine){.case__next-title:hover{text-decoration:underline}}.case__todo{align-items:center;background-color:var(--color-light-magenta);border:2px dashed var(--color-magenta);border-radius:var(--radius-md);color:var(--color-magenta-text);display:flex;font-size:.9375rem;justify-content:center;line-height:1.5;min-height:12rem;padding:1.5rem;text-align:center}.case__todo p{margin:0;max-width:40ch}.case__figure--todo{margin-block:2.5rem}.case__facts{margin-block:2rem;padding-inline-start:1.25rem}.case__facts li{font-size:1.0625rem;margin-block:.5rem}.cx{--sunken:#ecedef;--base:#f3f4f5;--raised:#fff;--header:#f9fafb;--emphasis:#1d2124;--ink:rgba(0,0,0,.88);--ink-2:rgba(0,0,0,.7);--ink-3:rgba(0,0,0,.54);--line:rgba(0,0,0,.13);--line-strong:rgba(0,0,0,.28);--wash:rgba(0,0,0,.06);--accent:#374bca;--accent-ink:#2e4097;--primary:#3d56e0;--ok:#006818;--bad:#a9241b;--warn:#7d5413;--ok-soft:rgba(0,136,35,.1);--bad-soft:rgba(169,36,27,.09);--warn-soft:rgba(125,84,19,.1);--code-bg:rgba(0,0,0,.06);color:var(--ink);font-family:Geist Mono,ui-monospace,SF Mono,Consolas,monospace;font-size:15.5px;line-height:1.6;margin-block:2.5rem}.cx *{box-sizing:border-box}.cx .fig p,.cx p{color:var(--ink-2);font-family:inherit;font-size:15.5px;line-height:1.6;margin:0 0 14px;max-width:none}.cx p b,.cx p strong{color:var(--ink);font-weight:600}.cx code{background:var(--code-bg);border-radius:4px;font-family:Geist Mono,ui-monospace,monospace;font-size:.85em;padding:1px 5px;white-space:nowrap}.cx .fig{background:var(--base);border:1px solid var(--line);border-radius:12px;margin:26px 0;padding:22px}.cx .fig .cap{color:var(--ink-3);font-size:13px;line-height:1.5;margin:14px 0 0;max-width:none}.cx .fig .cap b{color:var(--ink-2)}.cx .trick{display:grid;gap:14px}.cx .trick-q{color:var(--ink-2);font-family:Geist Mono,ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.cx .barrow,.cx .bars{display:grid;gap:10px}.cx .barrow{grid-template-columns:1fr 1fr}.cx .bar{border-radius:8px;height:74px;overflow:hidden;position:relative}.cx .bar .tag{background:rgba(0,0,0,.55);border-radius:99px;bottom:8px;color:hsla(0,0%,100%,.92);font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;left:10px;padding:2px 8px;position:absolute}.cx .gray-row{max-height:0;opacity:0;overflow:hidden;transition:max-height .6s ease,opacity .6s ease}.cx .trick.revealed .gray-row{max-height:220px;opacity:1}.cx .lum-readout{color:var(--ink-2);display:none;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;line-height:1.8}.cx .trick.revealed .lum-readout{display:block}.cx .reveal-btn{background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Geist Mono,ui-monospace,monospace;font-size:12.5px;font-weight:500;justify-self:start;padding:9px 18px}.cx .reveal-btn:hover{background:#4a63e4}.cx .trick.revealed .reveal-btn{display:none}.cx .receipts{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:22px 0}.cx .rcard{background:var(--base);border:1px solid var(--line);border-radius:10px;overflow:hidden}.cx .rcard .demo{align-items:center;display:flex;font-size:13.5px;font-weight:600;justify-content:center;min-height:64px;padding:14px}.cx .rcard .body{border-top:1px solid var(--line);padding:12px 14px}.cx .rcard .nm{font-size:13px;font-weight:600}.cx .rcard .dt{color:var(--ink-3);font-size:12px;margin-top:2px}.cx .chip{border-radius:99px;display:inline-block;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:500;margin-top:8px;padding:2px 9px}.cx .chip.fail{background:var(--bad-soft);color:var(--bad)}.cx .chip.pass{background:var(--ok-soft);color:var(--ok)}.cx .chip.dim{background:var(--code-bg);color:var(--ink-3)}.cx .stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:24px 0}.cx .stat{background:var(--base);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.cx .stat .n{font-family:Geist Mono,ui-monospace,monospace;font-size:24px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.02em;line-height:1.2}.cx .stat .n .to{color:var(--ok)}.cx .stat .l{color:var(--ink-3);font-size:12px;line-height:1.45;margin-top:4px}.cx .invert-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.cx .mini-ui{border:1px solid var(--line);border-radius:10px;overflow:hidden}.cx .mini-ui .mlabel{background:var(--header);border-bottom:1px solid var(--line);color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.08em;padding:8px 12px;text-transform:uppercase}.cx .mini-ui .mbody{font-size:12px;padding:16px}.cx .mini-ui .mcard{border-radius:7px;padding:12px 14px}.cx .mini-ui .mbtn{border-radius:5px;display:inline-block;font-size:11px;font-weight:600;margin-top:10px;padding:5px 12px}.cx .quote{border-left:3px solid var(--primary);color:var(--ink);font-size:clamp(20px,3vw,26px);font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:30px 0;max-width:26ch;padding-left:20px;text-wrap:balance}.cx .mx-stagehead{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 8px}.cx .mx-stagehead .k{color:var(--accent);font-family:Geist Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.cx .mx-stagehead .t{font-size:14px;font-weight:600}.cx .mxwrap{background:var(--base);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.cx table.mx{border-collapse:collapse;font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;min-width:640px}.cx .mx td,.cx .mx th{padding:0}.cx .mx thead th{color:var(--ink-3);font-size:9px;font-weight:500;letter-spacing:.04em;padding:8px 4px 6px;text-align:center;text-transform:uppercase;vertical-align:bottom}.cx .mx thead th .csw{border:1px solid var(--line-strong);border-radius:4px;display:block;height:14px;margin:0 auto 4px;width:14px}.cx .mx tbody th{background:var(--base);color:var(--ink-2);font-size:10px;font-weight:500;left:0;padding:0 10px;position:sticky;text-align:left;white-space:nowrap}.cx .mx .cell{align-items:center;display:flex;font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:500;height:44px;justify-content:center;width:52px}.cx .mx .cell .v{border-radius:4px;padding:3px 6px}.cx .mx .cell .nay{font-size:14px;font-weight:400;opacity:.22}.cx .mx-note{color:var(--ink-3);font-size:12.5px;line-height:1.55;margin-top:10px}.cx .callouts{display:grid;gap:8px;margin:14px 0 0}.cx .callout{background:var(--base);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;color:var(--ink-2);font-size:12.5px;max-width:620px;padding:8px 14px}.cx .anchorboard{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cx .apin{background:var(--base);border:1px solid var(--line);border-radius:10px;overflow:hidden}.cx .apin .sw{align-items:flex-end;display:flex;height:52px;padding:8px 10px}.cx .apin .sw span{background:rgba(0,0,0,.5);border-radius:99px;color:hsla(0,0%,100%,.92);font-family:Geist Mono,ui-monospace,monospace;font-size:9.5px;padding:1px 7px}.cx .apin .ab{padding:9px 11px}.cx .apin .anm{font-size:12.5px;font-weight:600}.cx .apin .adt{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10px;font-variant-numeric:tabular-nums;margin-top:2px}.cx .ramp{border:1px solid var(--line);border-radius:7px;display:flex;overflow:hidden}.cx .ramp .rc{cursor:crosshair;flex:1;height:44px;min-width:26px;position:relative}.cx .ramp .rc.anch:after{align-items:center;color:hsla(0,0%,100%,.92);content:"⚓";display:flex;font-size:12px;inset:0;justify-content:center;position:absolute;text-shadow:0 1px 2px rgba(0,0,0,.6)}.cx .ramprow{align-items:center;display:grid;gap:12px;grid-template-columns:74px 1fr;margin:8px 0}.cx .ramprow .rl{color:var(--ink-2);font-size:11px;text-align:right}.cx .rampout,.cx .ramprow .rl{font-family:Geist Mono,ui-monospace,monospace}.cx .rampout{color:var(--ink-3);font-size:11.5px;font-variant-numeric:tabular-nums;margin-top:10px;min-height:20px}.cx .strips canvas{border:1px solid var(--line);border-radius:6px;display:block;height:40px;width:100%}.cx .striplabel{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;letter-spacing:.04em;margin:12px 0 5px}.cx .striplabel:first-child{margin-top:0}.cx .btnmath{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.cx .bmcol{background:var(--base);border:1px solid var(--line);border-radius:10px;padding:16px}.cx .bmcol h4{font-size:13.5px;margin:0 0 4px}.cx .bmcol .sub{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace;font-size:10.5px;margin-bottom:12px}.cx .tokgrid{display:grid;gap:5px;grid-template-columns:repeat(3,1fr)}.cx .tok-sq{border:1px solid var(--line);border-radius:5px;height:26px}.cx .livebtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.cx .lb{border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 16px}.cx .lb.ghost{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}.cx .bm-readout{color:var(--ink-2);font-family:Geist Mono,ui-monospace,monospace;font-size:11.5px;font-variant-numeric:tabular-nums;margin-top:12px;min-height:20px}.cx .fieldgrid{display:grid;gap:4px 18px;grid-template-columns:1fr 1fr}.cx .fieldgrid>div{min-width:0}.cx .fieldgrid canvas{border-radius:6px;display:block;height:185px;width:100%}@media(max-width:640px){.cx .fieldgrid{grid-template-columns:1fr}}.cx .tt-group{background:var(--raised);border:1px solid var(--line);border-radius:10px;margin:0 0 12px;overflow:hidden}.cx .tt-ghead{background:var(--header);border-bottom:1px solid var(--line);padding:10px 16px 9px}.cx .tt-ghead .gn{font-size:13.5px;font-weight:600}.cx .tt-ghead .gwhy{color:var(--ink-3);font-size:12px;line-height:1.45;margin-top:1px}.cx .tt-row{align-items:center;border-bottom:1px solid var(--line);display:grid;font-size:12px;gap:10px;grid-template-columns:minmax(150px,1.1fr) minmax(160px,1fr) minmax(160px,1fr);padding:6px 16px}.cx .tt-row:last-child{border-bottom:0}.cx .tt-row .tn{font-family:Geist Mono,ui-monospace,monospace;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx .tt-row .tn .agn{color:var(--ink-3);font-size:9.5px;letter-spacing:.04em;margin-left:6px}.cx .tt-cell{align-items:center;display:flex;gap:7px;min-width:0}.cx .tt-cell .sw{border:1px solid var(--line-strong);border-radius:5px;flex:none;height:20px;width:20px}.cx .tt-cell .vv{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx .tt-cell .vv,.cx .tt-colhead{color:var(--ink-3);font-family:Geist Mono,ui-monospace,monospace}.cx .tt-colhead{display:grid;font-size:10px;gap:10px;grid-template-columns:minmax(150px,1.1fr) minmax(160px,1fr) minmax(160px,1fr);letter-spacing:.08em;padding:0 16px 8px;text-transform:uppercase}@media(max-width:640px){.cx .tt-colhead,.cx .tt-row{grid-template-columns:1fr 1fr}.cx .tt-colhead .h0,.cx .tt-row .tn{grid-column:1/-1}}.cx .oprow{align-items:center;display:grid;gap:12px;grid-template-columns:56px minmax(110px,.8fr) 2fr 64px 64px;padding:5px 0}.cx .oprow .opv{font-family:Geist Mono,ui-monospace,monospace;font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.cx .oprow .opn{color:var(--ink-2);font-family:Geist Mono,ui-monospace,monospace;font-size:11px;white-space:nowrap}.cx .oprow .opbar{background:var(--wash);border-radius:4px;height:14px;overflow:hidden;position:relative}.cx .oprow .opbar i{background:var(--ink);border-radius:4px;inset:0 auto 0 0;position:absolute}.cx .oprow .opchip{border:1px solid var(--line-strong);border-radius:5px;height:22px}.cx .ophead{color:var(--ink-3);display:grid;font-family:Geist Mono,ui-monospace,monospace;font-size:9.5px;gap:12px;grid-template-columns:56px minmax(110px,.8fr) 2fr 64px 64px;letter-spacing:.07em;padding:0 0 6px;text-transform:uppercase}@media(max-width:640px){.cx .ophead,.cx .oprow{grid-template-columns:44px 1fr 52px 52px}.cx .ophead .hb,.cx .oprow .opbar{display:none}}.cx .tl{list-style:none;margin:22px 0 0;padding:0}.cx .tl li{padding:0 0 24px 44px;position:relative}.cx .tl li:before{align-items:center;background:var(--wash);border-radius:6px;color:var(--ink-2);content:attr(data-v);display:flex;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;font-weight:500;height:22px;justify-content:center;left:0;position:absolute;top:1px;width:30px}.cx .tl li:after{background:var(--line);bottom:4px;content:"";left:14px;position:absolute;top:28px;width:1px}.cx .tl li:last-child:after{display:none}.cx .tl .tt{font-size:14.5px;font-weight:600}.cx .tl .td{color:var(--ink-2);font-size:13.5px;margin-top:2px;max-width:58ch}@media(prefers-reduced-motion:reduce){.cx .gray-row,.cx .trick .gray-row{transition:none}}.case__embed-note{color:var(--color-ink-muted,inherit);font-size:.9375rem;margin-block:-1.5rem 2.5rem;text-align:center}html:not(.js) .cx{display:none}@media(max-width:40rem){.cx .ramp{overflow-x:auto;overscroll-behavior-x:contain}}.cx .bar{box-shadow:inset 0 0 0 1px var(--line)}.portfolio-intro{font-size:var(--p-size);line-height:1.35;margin-block:1.5rem 4rem;max-width:40ch}.work-grid{display:grid;gap:clamp(1.5rem,5vw,3rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}.work-card{color:inherit;display:flex;flex-direction:column;gap:1rem;position:relative;text-decoration:none}.work-card img{background-color:var(--color-surface);border-radius:var(--radius-md);height:auto;transition:transform var(--duration) var(--ease);width:100%}@media(hover:hover)and (pointer:fine){.work-card:hover img{transform:scale(.97) rotate(-1deg)}.work-card:hover .work-card__title{text-decoration:underline}}.work-card__title{color:var(--color-blue);font-family:var(--font-primary);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1}.work-card__meta{color:var(--color-magenta-text);display:flex;flex-wrap:wrap;font-size:.8125rem;gap:.5rem 1rem;letter-spacing:.08em;text-transform:uppercase}.work-card__summary{line-height:1.5;max-width:46ch}.work-card--external .work-card__title:after{content:" ↗";font-size:.7em;vertical-align:super}.writing-list{display:grid;gap:0;margin-block-start:3rem}.writing-item{border-top:1px solid var(--color-border);display:grid;gap:.5rem;grid-template-columns:1fr;padding-block:2rem}@media only screen and (min-width:40rem){.writing-item{gap:2rem;grid-template-columns:9rem 1fr}}.writing-item:last-child{border-bottom:1px solid var(--color-border)}.writing-item__date{color:var(--color-magenta-text);font-size:.875rem;letter-spacing:.06em;text-transform:uppercase}.writing-item__title{font-family:var(--font-primary);font-size:clamp(1.375rem,3vw,2rem);line-height:1.15}.writing-item__title a{color:var(--color-blue);text-decoration:none}.writing-item__title a:after{content:"";inset:0;position:absolute}@media(hover:hover)and (pointer:fine){.writing-item__title a:hover{text-decoration:underline}}.writing-item__body{max-width:62ch;position:relative}.writing-item__excerpt{line-height:1.5;margin-block-start:.5rem}.writing-item__meta{color:rgba(0,0,0,.6);font-size:.8125rem;margin-block-start:.75rem}.article{--measure:68ch}.article__header{margin-inline:auto;max-width:var(--measure);padding-block:clamp(4rem,14vh,8rem) 2rem}.article__title{color:var(--color-blue);font-size:clamp(2rem,6vw,4rem);line-height:1.05}.article__meta{color:rgba(0,0,0,.65);display:flex;flex-wrap:wrap;font-size:.875rem;gap:.5rem 1rem;margin-block-start:1.5rem}.article__canonical{background-color:var(--color-light-magenta);border-radius:var(--radius-md);font-size:.9375rem;line-height:1.5;margin:2rem auto;max-width:var(--measure);padding:1rem 1.25rem}.article__canonical a{color:var(--color-magenta-text);font-weight:700}.article__body{font-size:1.0625rem;line-height:1.7;margin-inline:auto;max-width:var(--measure)}.article__body>*+*{margin-block-start:1.25em}.article__body h2{--base-size:clamp(1.5rem,3vw,2rem);color:var(--color-blue);margin-block-start:2.5em}.article__body h3{font-size:1.25rem;margin-block-start:2em}.article__body a{color:var(--color-magenta-text);text-underline-offset:.2em}.article__body ol,.article__body ul{padding-inline-start:1.5em}.article__body li+li{margin-block-start:.5em}.article__body blockquote{border-inline-start:4px solid var(--color-cyan);font-style:italic;margin-inline:0;padding-inline-start:1.25rem}.article__body img{border-radius:var(--radius-sm);height:auto;width:100%}.article__body figcaption,.article__body img+em{color:rgba(0,0,0,.6);display:block;font-size:.875rem;margin-block-start:.5rem;text-align:center}.article__body pre{background-color:#1e1e28;border-radius:var(--radius-sm);color:#e6e6f0;font-size:.875rem;line-height:1.6;overflow-x:auto;padding:1.25rem}.article__body :not(pre)>code{background-color:var(--color-light-magenta);border-radius:4px;color:var(--color-magenta-text);font-size:.9em;padding:.15em .4em}.article__body table{font-size:.9375rem;width:100%}.article__body td,.article__body th{border-bottom:1px solid var(--color-border);padding:.5rem .75rem;text-align:left}.article__table-wrap{overflow-x:auto}.writing-item__lang{font-style:italic}.article-gif{margin:0}.article-gif video{border-radius:var(--radius-sm);height:auto;width:100%}.me{align-items:center;display:flex;flex-direction:column;min-height:100svh;padding-block:clamp(2rem,8vh,5rem);text-align:center}.me__avatar{aspect-ratio:1;border-radius:50%;height:auto;-o-object-fit:cover;object-fit:cover;width:min(30rem,50%)}.me__name{color:var(--color-blue);font-size:clamp(2rem,8vw,3.5rem);margin-block-start:1.5rem}.me__tagline{line-height:1.4;margin:1rem auto 0;max-width:34ch}.me__links{display:flex;flex-direction:column;gap:.75rem;margin-block-start:2.5rem;width:min(100%,26rem)}.me__link{background-color:var(--color-magenta);border-radius:var(--radius-md);color:var(--color-white);display:block;font-weight:700;padding:1rem 1.25rem;text-decoration:none;transition:transform var(--duration) var(--ease),background-color var(--duration)}@media(hover:hover)and (pointer:fine){.me__link:hover{background-color:var(--color-blue);transform:scale(.97) rotate(-1deg)}}.me__link--ghost{background-color:var(--color-light-magenta);color:var(--color-magenta-text)}