:root{--default-grid: 60px;--bg-color: #121212;--card-color: #1b1b1b;--bg-loading:#0A0A0A;--grid-color: #ffffff05;--grid-hover: #22D3EE12;--primary-color: #22D3EE;--text-primary: #ffffff;--text-secondary: #ffffffd2;--text-muted: #ffffff71}[data-theme=light]{--bg-color: #ffffff;--bg-loading:#f0f0f0;--card-color: #e4e4e4;--grid-color: #00000008;--grid-hover: #22D3EE20;--primary-color: #0EA5E9;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b}::view-transition-old(root){animation:none}::view-transition-new(root){clip-path:inset(100% 0 0 0);animation:theme-reveal .6s cubic-bezier(.76,0,.24,1) forwards}@keyframes theme-reveal{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@font-face{font-family:title;src:url(/fonts/wigolomo/wigolamono-bold.otf);font-weight:100;font-style:normal}@font-face{font-family:semi-title;src:url(/fonts/wigolomo/wigolamono-medium.otf);font-weight:100;font-style:normal}@font-face{font-family:wigolo-regular;src:url(/assets/wigolamono-light-CjCz3yZS.otf);font-style:normal}@font-face{font-family:geist-regular;src:url(/fonts/geist/Geist-Regular-BF6569491e3eff1.otf) format("opentype");font-weight:100;font-style:normal}@font-face{font-family:geist-light;src:url(/fonts/geist/Geist-Light-BF6569491dc9c01.otf) format("opentype");font-weight:100;font-style:normal}@font-face{font-family:geist-medium;src:url(/assets/Geist-Medium-BF6569491e1c281-BEUrRe_u.otf);font-weight:100;font-style:normal}body{overflow-x:hidden;background-color:var(--bg-color)}a{text-decoration:none;color:inherit}.container{margin-left:var(--default-grid)}.cursor-pointer{cursor:pointer}.page-wrapper{position:relative;width:100vw;min-height:100vh;overflow-x:hidden}.page-content{z-index:2}.header-row{position:fixed;top:0;left:0;width:100%;height:var(--cell-size);z-index:10;font-family:geist-light;font-weight:100;pointer-events:none}.header-logo,.nav-item,.contact-item,.burger-btn{pointer-events:auto}.header-logo img{height:calc(.75 * var(--cell-size));width:auto;position:absolute;top:50%;transform:translateY(-50%)}.nav-item{font-size:clamp(9px,.75vw,11px);font-weight:700;color:var(--text-secondary);white-space:nowrap;overflow:visible}.contact-item{font-size:clamp(10px,.85vw,12px);color:var(--text-primary);font-family:geist-regular;white-space:nowrap;overflow:visible;display:flex;align-items:center}.contact-icon{display:inline-block;vertical-align:middle;margin-right:6px;position:relative;top:-1px;flex-shrink:0}.burger-btn{background:none;border:none;cursor:pointer;color:var(--text-primary);font-size:clamp(20px,2.5vw,28px);padding:0;pointer-events:auto;transition:opacity .15s ease}.burger-btn:hover{opacity:.6}.icon-bars,.icon-times{position:absolute;top:0;left:0;transition:opacity .3s ease,transform .3s ease}.icon-bars{opacity:1;transform:rotate(0)}.icon-times{opacity:0;transform:rotate(-90deg)}.burger-icon-wrap.is-open .icon-bars{opacity:0;transform:rotate(90deg)}.burger-icon-wrap.is-open .icon-times{opacity:1;transform:rotate(0)}.menu-overlay{position:fixed;inset:0;background:var(--bg-color);z-index:500;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:inset(0 0 100% 0);transition:clip-path .4s cubic-bezier(.76,0,.24,1)}.menu-overlay--open{clip-path:inset(0 0 0% 0);pointer-events:auto}.menu-center{flex:1;display:flex;align-items:center;justify-content:center}.menu-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:calc(var(--cell-size) * .6)}.menu-nav-item{position:relative;overflow:hidden;cursor:pointer;pointer-events:auto;padding:clamp(6px,1vh,12px) clamp(12px,2vw,24px);font-family:wigolo-regular;font-size:clamp(32px,9vw,80px);font-weight:1;display:block}.menu-nav-item:before{content:"";position:absolute;top:0;left:0;width:100%;height:0;background:var(--text-primary);transition:height .35s ease-in-out;z-index:0}.menu-nav-item.is-hovered:before{height:100%}.menu-nav-text{display:block;position:relative;z-index:1;pointer-events:none;color:var(--text-primary);transition:color .35s ease-in-out}.menu-nav-item:hover{color:var(--bg-color)}.menu-copyright{font-family:geist-light;font-size:clamp(10px,1.5vw,13px);color:var(--text-muted);text-align:center;padding-bottom:calc(var(--cell-size) * .5)}.menu-bottom-contact{position:absolute;bottom:var(--cell-size);left:var(--cell-size);display:flex;flex-direction:column;gap:calc(var(--cell-size) * .4)}.menu-contact-item{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-family:geist-regular;font-size:clamp(12px,1.8vw,16px)}.nav-item-inner{position:relative;display:inline-flex;flex-direction:column;cursor:pointer}.nav-underline{position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--primary-color);transition:width .25s ease}.nav-item:hover .nav-underline,.nav-item--active .nav-underline{width:100%}.nav-item--active,.nav-item--active .cursor-pointer,.nav-item:hover .cursor-pointer,.menu-nav-item--active .menu-nav-text{color:var(--primary-color)}.theme-overlay{position:fixed;top:0;left:0;width:100vw;height:100dvh;z-index:9998;pointer-events:none;clip-path:inset(100% 0 0 0);transition:none}.theme-overlay--active{clip-path:inset(0 0 0 0);transition:clip-path .4s cubic-bezier(.76,0,.24,1)}.theme-switcher{pointer-events:auto;cursor:pointer;display:flex;align-items:center}.theme-switcher-inner{position:relative;display:inline-flex;flex-direction:column;cursor:pointer}.theme-switcher-inner .cursor-pointer{font-family:geist-light;font-size:clamp(9px,.75vw,11px);font-weight:700;color:var(--text-primary);white-space:nowrap}.theme-underline{position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--text-primary)}.menu-theme-btn{position:absolute;bottom:var(--cell-size);right:var(--cell-size);font-family:geist-regular;font-size:clamp(11px,1.8vw,14px);color:var(--text-muted);cursor:pointer;letter-spacing:2px;transition:color .2s ease}.menu-theme-btn:hover{color:var(--primary-color)}:root{--grid-cols: 31}@media(max-width:1280px){:root{--grid-cols: 26}}@media(max-width:1024px){:root{--grid-cols: 22}}@media(max-width:820px){:root{--grid-cols: 18}}@media(max-width:768px){:root{--grid-cols: 14}}@media(max-width:430px){:root{--grid-cols: 12}}@media(max-width:390px){:root{--grid-cols: 10}}body{margin:0}.grid{position:fixed;top:0;left:0;width:100vw;height:100dvh;display:grid;grid-template-columns:repeat(var(--grid-cols),var(--cell-size));grid-auto-rows:var(--cell-size)}.cell{border:1px solid var(--grid-color);transition:background 1s ease-out;z-index:9999}.card-project{width:clamp(200px,70vw,650px);height:clamp(150px,35dvh,380px);flex-shrink:0;overflow:hidden;background-color:var(--grid-hover);transition:all .3s ease-in-out;cursor:pointer;z-index:1;border-radius:5px}.card-project-image{width:100%;height:100%}.card-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease-in-out}.card-project-image img:hover{transform:scale(1.02)}.card-unfocused{filter:blur(5px);transform:scale(.95);opacity:.7;z-index:0}@media screen and (max-height:800px){.card-project{width:clamp(150px,60vw,300px);height:clamp(20px,20dvh,180px)}}@media screen and (max-width:375px){.card-project{width:clamp(120px,50vw,260px);height:clamp(65px,20dvh,140px)}}@media screen and (max-width:430px){.card-project{width:clamp(150px,70vw,400px);height:clamp(80px,28dvh,200px)}}@media screen and (min-width:431px)and (max-width:768px){.card-project{width:clamp(300px,55vw,600px);height:clamp(93px,28dvh,220px)}}@media screen and (min-width:769px)and (max-width:819px){.card-project{width:clamp(300px,55vw,600px);height:clamp(150px,35dvh,320px)}}@media screen and (min-width:820px)and (max-width:1024px){.card-project{width:clamp(400px,55vw,800px);height:clamp(200px,35dvh,380px)}}@media screen and (max-height:800px){.card-project{width:clamp(200px,60vw,320px);height:clamp(22px,28dvh,225px)}}.loading-background{position:fixed;top:0;left:0;width:100%;height:100dvh;background-color:var(--bg-loading);z-index:9999;display:flex;align-items:center;justify-content:center}.logo-parts-container{position:relative;width:120px;height:120px}.logo-part{position:absolute;opacity:0}.logo-part img{display:block;object-fit:contain}.logo-part:nth-child(1){top:0;left:0;width:61px;height:55px}.logo-part:nth-child(2){top:4.5px;left:4.55px;width:100px;height:100px}.logo-part:nth-child(3){top:57.3px;left:54.15px;width:61px;height:53px}.logo-part img{width:100%;height:100%}.project-page{position:relative;width:100vw;height:100vh;overflow:hidden}.semi-title{font-family:wigolo-regular;color:var(--text-primary);font-size:clamp(16px,2.35vw,24px);font-weight:1;margin:0;white-space:nowrap}.muted{color:var(--text-muted);font-size:inherit;font-weight:100}.muted-titre-semi{color:var(--text-muted);font-size:clamp(12px,2.8vw,14px);font-family:geist-regular;font-weight:100;margin:0 0 8px}.list-services{list-style:none;padding:0;margin:0;color:var(--text-secondary);font-family:geist-light;font-size:clamp(10px,1.8vw,14px);display:flex;flex-direction:column;gap:6px}.card-project-title{font-family:title;font-weight:1;color:var(--primary-color);font-size:clamp(28px,8vw,120px);line-height:1;margin:0;padding:0;display:block;overflow:hidden;z-index:900}.card-project-title span{display:block;line-height:1}.info-work{color:var(--text-secondary);font-family:geist-light;font-size:clamp(10px,1.8vw,14px);white-space:pre-line}.btn{position:relative;padding:clamp(8px,.8vw,15px) clamp(10px,1vw,18px);background-color:var(--primary-color);color:var(--bg-color);border:none;border-radius:5px;font-family:geist-medium;font-size:clamp(10px,1.8vw,14px);cursor:pointer;overflow:hidden;z-index:999;white-space:nowrap}.btn:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:0;background-color:var(--text-primary);transition:height .2s ease-in-out;z-index:-1}.btn:hover:after{height:100%}.list-projects{display:flex;gap:15px;width:max-content;will-change:transform;animation:scroll-left 20s linear infinite}@keyframes scroll-left{0%{transform:translate(-50%)}to{transform:translate(0)}}@media screen and (min-width:821px)and (max-width:1024px){.info-work{font-size:clamp(12px,2vw,18px)}.btn{padding:20px}}@media screen and (max-width:375px){.list-services,.muted-titre-semi{font-size:10px}.btn{padding:8px;font-size:10px}.info-work{font-size:10px}}@media screen and (max-height:700px){.list-services,.muted-titre-semi{font-size:10px}.btn{padding:8px;font-size:10px}.info-work{font-size:10px}.semi-title{font-size:clamp(10px,2.35vw,16px)}.card-project-title{font-size:clamp(20px,8vw,50px)}}.project-page{position:relative;width:100vw;height:100dvh;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes cardReveal{0%{opacity:.2;filter:blur(14px)}to{opacity:1;filter:blur(0px)}}.list-projects-wrapper{opacity:0;animation:carouselReveal 1.5s cubic-bezier(.16,1,.3,1) .8s forwards}@keyframes carouselReveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:scale(.97);filter:blur(8px)}60%{opacity:1;filter:blur(0px)}to{opacity:1;clip-path:inset(0 0% 0 0);transform:scale(1);filter:blur(0px)}}.about-page{position:relative;width:100vw;height:100dvh;overflow:hidden}.about-big-title{font-family:title;font-weight:1;color:var(--primary-color);font-size:clamp(50px,10vw,120px);line-height:1;margin:0;padding:0;white-space:nowrap}.about-photo-wrapper{width:calc(100vw - 18 * var(--cell-size) - var(--cell-size));aspect-ratio:3 / 4;max-height:65dvh;overflow:hidden;border-radius:8px}.about-photo{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;filter:grayscale(20%);transition:filter .4s ease}.about-photo:hover{filter:grayscale(0%)}.about-bio{max-width:clamp(280px,36vw,1000px)}.bio-line{margin:0;opacity:0}.about-bio-main{font-family:geist-medium;font-size:clamp(20px,3vw,24px);color:var(--text-primary);font-weight:100}.about-bio-name{font-family:geist-medium;color:var(--text-primary)}.about-bio-alias{font-family:wigolo-regular;color:var(--primary-color);font-size:1.1em}.about-bio-highlight{color:var(--text-primary);font-family:geist-regular}.about-bio-accent{color:var(--primary-color)}.about-spec-item{display:flex;flex-direction:column;gap:3px;text-decoration:none}.about-spec-label{font-family:geist-light;font-size:clamp(9px,.75vw,11px);color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase}.about-spec-value{font-family:geist-regular;font-size:clamp(12px,1vw,15px);color:var(--text-primary);white-space:nowrap;transition:color .2s ease}.about-spec-item:hover .about-spec-value{color:var(--primary-color)}@media screen and (max-width:1440px){.about-photo-wrapper{width:calc(100vw - 16 * var(--cell-size) - var(--cell-size))}}@media screen and (max-width:1280px){.about-photo-wrapper{width:calc(100vw - 14 * var(--cell-size) - var(--cell-size))}}@media screen and (max-width:1024px){.about-big-title{font-size:clamp(40px,12vw,90px)}.about-photo-wrapper{width:clamp(120px,35vw,280px);height:clamp(150px,40dvh,380px);max-height:none;aspect-ratio:unset}.about-bio{max-width:calc(100vw - 2 * var(--cell-size))}}@media screen and (max-width:768px){.about-big-title{font-size:clamp(36px,14vw,70px)}.about-photo-wrapper{width:clamp(100px,28vw,200px);height:clamp(120px,32dvh,280px)}.about-bio-main{font-size:clamp(11px,3.5vw,14px)}}@media screen and (max-width:430px){.about-big-title{font-size:clamp(30px,16vw,60px)}.about-photo-wrapper{width:clamp(80px,24vw,160px);height:clamp(100px,26dvh,220px)}}@media screen and (max-height:700px){.about-big-title{font-size:clamp(24px,7vw,50px)}.about-photo-wrapper{width:clamp(90px,25vw,200px);height:clamp(100px,30dvh,240px)}}@media screen and (max-height:600px){.about-big-title{font-size:clamp(18px,5vw,36px)}.about-photo-wrapper{width:clamp(70px,20vw,160px);height:clamp(80px,28dvh,200px)}.about-bio-main{font-size:10px}.about-bio-secondary,.about-bio-specs{font-size:9px}}.contact-page{position:relative;width:100vw;height:100dvh;overflow:hidden}.contact-big-title{font-family:title;font-weight:1;color:var(--primary-color);font-size:clamp(50px,10vw,120px);line-height:1;margin:0;padding:0;white-space:nowrap}.contact-box{width:calc(100vw - 18 * var(--cell-size) - var(--cell-size));border:1px solid var(--grid-color);border-radius:12px;overflow:hidden;background-color:var(--card-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.contact-switch{display:flex;padding:clamp(5px,.7vh,8px);gap:5px;border-bottom:1px solid var(--grid-color)}.contact-switch-btn{flex:1;padding:clamp(7px,.8vh,11px) 0;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-muted);font-family:geist-regular;font-size:clamp(10px,.85vw,13px);cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap}.contact-switch-btn.active{color:var(--text-primary);background:var(--grid-hover);border-color:var(--text-muted)}.contact-switch-btn:hover:not(.active){color:var(--text-secondary)}.contact-box-content{height:clamp(280px,46vh,400px);overflow:hidden;padding:clamp(16px,2vh,26px) clamp(16px,1.8vw,26px)}.contact-form{display:flex;flex-direction:column;gap:clamp(8px,1vh,12px);height:100%}.contact-form-section-label{font-family:geist-regular;font-size:clamp(10px,.8vw,13px);color:var(--text-secondary);margin:0 0 6px}.contact-field{opacity:0}.contact-input{width:100%;background:var(--grid-hover);border:1px solid var(--grid-color);border-radius:8px;color:var(--text-primary);font-family:geist-light;font-size:clamp(11px,.85vw,13px);padding:clamp(9px,1vh,13px) clamp(11px,.9vw,15px);outline:none;transition:border-color .25s ease;box-sizing:border-box}.contact-input::placeholder{color:var(--text-muted);font-family:geist-light}.contact-input:focus{border-color:var(--primary-color)}.contact-textarea{resize:none;height:clamp(70px,11vh,120px);line-height:1.6}.contact-submit-full{width:100%;padding:clamp(11px,1.2vh,15px);color:var(--bg-color);border:none;border-radius:8px;font-family:geist-medium;font-size:clamp(11px,.85vw,13px);cursor:pointer;letter-spacing:.5px;transition:opacity .2s ease;margin-top:auto}.contact-call{display:flex;flex-direction:column;height:100%}.contact-call-header{display:flex;flex-direction:column;gap:clamp(8px,1.2vh,14px);margin-bottom:clamp(14px,2.5vh,24px)}.contact-call-logo{width:clamp(36px,3.5vw,48px);height:clamp(36px,3.5vw,48px);border-radius:10px;background:var(--grid-hover);display:flex;align-items:center;justify-content:center;overflow:hidden}.contact-call-logo img{width:70%;height:70%;object-fit:contain}.contact-call-title{font-family:geist-regular;font-size:clamp(15px,1.4vw,20px);color:var(--text-primary);margin:0;font-weight:500}.contact-call-subtitle{font-family:geist-light;font-size:clamp(11px,.85vw,13px);color:var(--text-muted);margin:0;line-height:1.5}.contact-call-options{display:flex;flex-direction:column;gap:clamp(7px,.9vh,11px);margin-top:auto}.contact-call-card{display:flex;align-items:center;justify-content:space-between;padding:clamp(11px,1.4vh,16px) clamp(14px,1.3vw,20px);background:var(--grid-hover);border:1px solid var(--grid-color);border-radius:10px;text-decoration:none;transition:border-color .25s ease;cursor:pointer}.contact-call-card:hover{border-color:var(--primary-color)}.contact-call-card-left{display:flex;flex-direction:column;gap:4px}.contact-call-card-title{font-family:geist-regular;font-size:clamp(12px,.95vw,15px);color:var(--text-primary)}.contact-call-card-duration{display:flex;align-items:center;gap:5px;font-family:geist-light;font-size:clamp(10px,.8vw,12px);color:var(--text-muted)}.contact-call-card-duration svg{width:12px;height:12px;stroke:var(--text-muted)}.contact-call-card-arrow{width:30px;height:30px;border-radius:50%;background:var(--grid-hover);border:1px solid var(--grid-color);display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:14px;flex-shrink:0;transition:background .2s ease,border-color .2s ease,color .2s ease}.contact-call-card:hover .contact-call-card-arrow{background:var(--primary-color);border-color:var(--primary-color);color:var(--bg-color)}.contact-tagline{font-family:wigolo-regular;font-size:clamp(16px,2vw,28px);color:var(--text-secondary);margin:0;line-height:1.3;font-weight:1}.contact-tagline-accent{color:var(--primary-color)}.contact-socials{display:grid;grid-template-columns:repeat(2,auto);grid-template-rows:repeat(2,auto);column-gap:clamp(40px,8vw,550px);row-gap:clamp(12px,1.8vh,22px);align-items:start}.contact-social-item{display:flex;flex-direction:column;gap:3px;text-decoration:none;cursor:pointer}.contact-social-label{font-family:geist-regular;font-size:clamp(12px,1vw,16px);color:var(--text-primary);font-weight:500;transition:color .2s ease;white-space:nowrap}.contact-social-item:hover .contact-social-label{color:var(--primary-color)}.contact-social-handle{font-family:geist-light;font-size:clamp(9px,.75vw,12px);color:var(--text-muted);letter-spacing:.3px;white-space:nowrap}@media screen and (max-width:1440px){.contact-box{width:calc(100vw - 16 * var(--cell-size) - var(--cell-size))}}@media screen and (max-width:1280px){.contact-box{width:calc(100vw - 14 * var(--cell-size) - var(--cell-size))}}@media screen and (max-width:1024px){.contact-big-title{font-size:clamp(40px,12vw,90px)}.contact-box{width:calc(100vw - 2 * var(--cell-size))}.contact-box-content{height:clamp(260px,25vh,380px)}.contact-socials{grid-template-columns:repeat(2,auto);gap:clamp(10px,1.5vh,16px) clamp(20px,5vw,50px)}}@media screen and (max-width:768px){.contact-big-title{font-size:clamp(36px,14vw,70px)}.contact-box{width:calc(100vw - 2 * var(--cell-size))}.contact-box-content{height:clamp(230px,31vh,340px)}.contact-tagline{font-size:clamp(13px,4vw,20px)}.contact-socials{grid-template-columns:repeat(2,auto);column-gap:clamp(16px,6vw,40px)}}@media screen and (max-width:430px){.contact-big-title{font-size:clamp(30px,16vw,60px)}.contact-box-content{height:clamp(200px,38vh,300px)}.contact-textarea{height:clamp(50px,8vh,90px)}}@media screen and (max-height:700px){.contact-big-title{font-size:clamp(24px,7vw,50px)}.contact-box-content{height:clamp(200px,48vh,320px)}.contact-textarea{height:clamp(40px,7vh,80px)}}@media screen and (max-width:375px){.contact-box-content{height:clamp(150px,30vh,300px)}}@media screen and (max-height:600px){.contact-big-title{font-size:clamp(20px,6vw,40px)}.contact-box-content{height:160px}.contact-box{max-height:210px}.contact-textarea{height:30px}.contact-switch-btn{padding:3px 0;font-size:10px}.contact-form{gap:3px}.contact-submit-full{padding:5px}.contact-call-header{gap:3px;margin-bottom:4px}.contact-call-logo{width:24px;height:24px}.contact-input{padding:4px 8px;font-size:10px}}
