@font-face{font-family:Inter;src:url(/assets/inter-400-B6Jjae07.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/assets/inter-500-D4P0oW3U.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/assets/inter-700-2RePOeOv.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Inter;src:url(/assets/inter-900-CBrdODvI.woff2) format("woff2");font-style:normal;font-weight:900;font-display:swap}@font-face{font-family:Switzer;src:url(/assets/switzer-800-BNZqCbYm.woff2) format("woff2");font-style:normal;font-weight:800;font-display:swap}:root{--paper: #fff;--ink: #000;--menu-paper: #000;--menu-ink: #fff;--smile-art: url(/assets/logo-1-WAhmoWyo.png);--header-smile-art: url(/assets/logo-gray-BA9sL-DM.png);--menu-smile-art: url(/assets/logo-white-BRz3Dc-w.png);font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);color-scheme:light;font-synthesis:none}@media (prefers-color-scheme: dark){:root:not([data-theme]){--paper: #000;--ink: #fff;--smile-art: url(/assets/logo-white-BRz3Dc-w.png);--header-smile-art: url(/assets/logo-white-BRz3Dc-w.png);color-scheme:dark}}:root[data-theme=dark]{--paper: #000;--ink: #fff;--smile-art: url(/assets/logo-white-BRz3Dc-w.png);--header-smile-art: url(/assets/logo-white-BRz3Dc-w.png);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit}header{position:fixed;top:0;left:0;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;width:100%;height:62px;padding:20px 40px;color:var(--ink);background:none}header.scrolled{color:var(--ink);background:none}header.not-found-header{color:var(--ink);background:none}.header-actions{display:flex;align-items:center;gap:12px;height:22px}.theme-toggle{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;padding:0;border:0;color:inherit;background:none;cursor:pointer}.theme-toggle svg{display:block;width:19px;height:19px}.theme-toggle:hover svg{transform:scale(1.08)}.theme-toggle:focus-visible,.menu:focus-visible{outline:2px solid currentColor;outline-offset:4px}header .brand{display:inline-flex;align-items:center;gap:5px;font-family:Switzer,Inter,sans-serif;font-size:16px;font-weight:800;line-height:19px;letter-spacing:0}.brand-smile,.smile{background-image:var(--smile-art);background-repeat:no-repeat;background-position:center;background-size:contain}header .brand-smile{width:14px;height:14px;background-image:var(--header-smile-art)}header.menu-active .brand-smile{background-image:var(--menu-smile-art)}header nav{display:flex;gap:12px;font-size:14px;font-weight:500;letter-spacing:-.06em;align-items:center}.menu-primary,.menu-icon-group{display:flex;align-items:center;gap:12px}.nav-icon-link{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;padding:0;border:0;color:inherit;background:none;cursor:pointer;text-decoration:none}.nav-icon-link.roll-link{display:grid;place-items:center;overflow:hidden;padding:0}.nav-icon-link .roll-window{display:block;width:19px;height:19px;overflow:hidden}.nav-icon-link .roll-stack{display:block;transition:transform .25s ease}.nav-icon-link .roll-line{display:flex;align-items:center;justify-content:center;width:19px;height:19px}.nav-icon-link .roll-line svg{display:block;width:19px;height:19px;transition:transform .2s ease}.nav-icon-link:hover .roll-stack{transform:translateY(-19px)}.nav-icon-link:hover .roll-line svg{transform:scale(1.08)}.nav-icon-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}.nav-icon-link.active{opacity:1}.footer-nav-icons{display:flex;align-items:center;gap:14px;padding-left:4px;margin-top:4px}.footer-nav-icons .nav-icon-link{flex:0 0 24px;width:24px;height:24px}.footer-nav-icons .nav-icon-link .roll-window,.footer-nav-icons .nav-icon-link .roll-line,.footer-nav-icons .nav-icon-link svg{width:20px;height:20px}.footer-nav-icons .nav-icon-link .roll-window{padding:0}.footer-nav-icons .nav-icon-link:hover .roll-stack{transform:translateY(-20px)}.menu-details,.menu{display:none}header a:hover,footer a:hover{text-decoration:underline}header .brand:hover{text-decoration:none}.hero{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;justify-content:center;align-items:center;width:100%;height:100vh}.hero-title{position:relative;margin-top:3px}.hero-title>span{display:block;margin-left:8px;font-size:27px;line-height:32.4px}.hero h1{margin:0;font-size:140px;font-weight:700;line-height:1;letter-spacing:-.06em}.given-name{--name-end-y: 6px;display:inline-block;transform-origin:center;animation:name-enter 1.05s .55s both cubic-bezier(.16,1,.3,1)}.title-letter-mask{display:inline-block;overflow:hidden;vertical-align:top}.title-revealed .title-letter-mask{overflow:visible}.title-letter{display:inline-block;animation:letter-enter 1.3s both cubic-bezier(.16,1,.3,1)}@keyframes name-enter{0%{opacity:0;transform:translateY(50px) scale(.5)}to{opacity:1;transform:translateY(var(--name-end-y)) scale(1)}}@keyframes letter-enter{0%{transform:translateY(220px)}to{transform:translateY(0)}}.spacer{position:relative;z-index:4;height:150vh;background:transparent}.spacer:before{content:"";position:absolute;top:80vh;right:0;bottom:0;left:0;background:var(--paper)}.smile{position:absolute;left:calc(50% - 62.5px);width:125px;aspect-ratio:501 / 547;transform:scale(var(--smile-scale, 1));transform-origin:center top}.smile-mobile{display:none}.smile-desktop{top:80vh}.information,.contact,footer{position:relative;z-index:4;background:var(--paper);letter-spacing:-.84px}.information{padding:73px 40px 0}.row{display:grid;grid-template-columns:1fr 1fr}.row h2,footer h2{margin:0;font-size:14px;line-height:1.1}.row h2{font-weight:500}.about-row{min-height:261px}.about-copy{max-width:600px;font-size:14px;font-weight:700;line-height:1.2}.about-copy p{margin:0;text-transform:uppercase;text-wrap:balance}.about-copy strong{font-weight:900}.services-row{min-height:248px}.service-list p{margin:0;font-size:14px;font-weight:700;line-height:16.8px}.experience-row article{height:76px}.experience-row article:last-child{height:37px}.experience-row h3{margin:0 0 4px;font-size:14px;font-weight:700;line-height:16.8px}.experience-row p{margin:0;font-size:14px;font-weight:500;line-height:15.4px}.square{margin:0 6px}.contact{height:383px;padding:160px 40px 0;text-align:center}.contact p{margin:0 0 16px;font-size:14px;font-weight:700}.contact a{display:inline-block;padding:8px 13.5px;color:var(--paper);background:var(--ink);font-size:14px;font-weight:500;line-height:14px}footer{display:grid;grid-template-columns:repeat(3,1fr);min-height:316px;padding:73px 40px 60px}footer:before{content:"";position:absolute;top:0;left:40px;right:40px;height:1px;background:var(--ink)}footer h2{margin-bottom:15px;padding-left:4px;font-weight:700}footer a{display:block;width:max-content;max-width:100%;padding-left:4px;font-size:14px;font-weight:500;line-height:22px}.not-found{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;height:720px}.not-found h1{margin:0;font-size:140px;font-weight:700;line-height:1;letter-spacing:-.06em}.not-found a{padding:8px 12px;color:var(--paper);background:var(--ink);font-size:14px;font-weight:500;line-height:14px;letter-spacing:-.06em}@media (min-width: 810px) and (max-width: 1199px){.hero h1{font-size:clamp(70px,9.72vw,116px)}}@media (max-width: 809px){header{padding:20px;color:var(--ink);background:none}header.scrolled{background:none}header.menu-active{color:var(--menu-ink)}header .brand,header .menu,header .theme-toggle{position:relative;z-index:2}header nav{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;display:none;flex-direction:column;align-items:flex-end;gap:64px;padding:103px 24px 20px;color:var(--menu-ink);background:var(--menu-paper);text-align:right}header nav.open{display:flex}.menu-primary{flex-direction:column;gap:8px;font-size:48px;line-height:1.2;letter-spacing:-.06em}.menu-icon-group{display:flex;align-items:center;justify-content:flex-end;gap:20px}.menu-icon-group .nav-icon-link{width:44px;height:44px}.menu-icon-group .nav-icon-link .roll-window,.menu-icon-group .nav-icon-link .roll-line,.menu-icon-group .nav-icon-link svg{width:32px;height:32px;stroke-width:1.6}.menu-icon-group .nav-icon-link:hover .roll-stack{transform:translateY(-32px)}.footer-nav-icons{gap:20px;padding-left:0;margin-bottom:8px}.footer-nav-icons .nav-icon-link{width:36px;height:36px}.footer-nav-icons .nav-icon-link .roll-window,.footer-nav-icons .nav-icon-link .roll-line,.footer-nav-icons .nav-icon-link svg{width:26px;height:26px}.footer-nav-icons .nav-icon-link:hover .roll-stack{transform:translateY(-26px)}.menu-details{display:flex;flex-direction:column;gap:26px;font-size:14px;line-height:22px}.menu-details>div{display:flex;flex-direction:column}.menu-details b{margin-bottom:5px}.menu{display:block;height:22px;padding:0;border:0;color:inherit;background:none;font-size:14px;font-weight:500;line-height:22px;letter-spacing:-.06em;cursor:pointer}.hero{position:sticky;inset:auto;top:0;z-index:0;height:100vh}.hero-title{width:max-content;max-width:calc(100% - 26px);margin-top:-154px}.hero-title>span{margin-left:0;transform:translateY(-5px)}.given-name{--name-end-y: 0px}.hero h1{width:max-content;max-width:100%;margin:0;font-size:56px;text-align:left}.smile-mobile{display:block;top:var(--curtain-offset)}.smile-desktop{display:none}.spacer{--curtain-offset: -169.5px;height:59vh}.spacer:before{inset-block-start:var(--curtain-offset)}.information{padding:55px 20px 0}.row{display:block}.row h2{margin-bottom:40px}.about-row{min-height:400px}.about-copy{max-width:350px}.services-row{min-height:304px}.contact{padding:160px 20px 0}footer{display:block;min-height:552px;padding:80px 20px 25px}footer:before{left:20px;right:20px}.footer-col:first-child{margin-bottom:20px}.footer-col:nth-child(2){margin-bottom:72px}.not-found{height:100vh}.not-found h1{font-size:56px}}@media (min-width: 500px) and (max-width: 809px){.hero-title{margin-top:-166px}.spacer{--curtain-offset: -181.5px}.about-row{min-height:316px}}@media (max-width: 499px){.contact{height:382px}}@media (max-width: 809px){header nav.open{animation:menu-reveal .8s linear both}header nav.closing{display:flex;animation:menu-hide .8s linear both}}@keyframes menu-reveal{0%{clip-path:inset(0 0 100% 0)}10%{clip-path:inset(0 0 91% 0)}20%{clip-path:inset(0 0 75% 0)}37.5%{clip-path:inset(0 0 35% 0)}62.5%{clip-path:inset(0 0 7% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes menu-hide{0%{clip-path:inset(0 0 0 0)}10%{clip-path:inset(0 0 20% 0)}20%{clip-path:inset(0 0 62% 0)}37.5%{clip-path:inset(0 0 92% 0)}62.5%{clip-path:inset(0 0 99% 0)}to{clip-path:inset(0 0 100% 0)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}header nav.open,header nav.closing{animation:none}header nav.closing{display:none}.given-name,.title-letter{animation:none}}.roll-link{position:relative;display:inline-block;height:22px;padding:4px;overflow:hidden;vertical-align:top;line-height:14px;text-decoration:none}.roll-link:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .3s ease}.roll-window{position:relative;z-index:1;display:block;height:14px;overflow:hidden}.roll-stack{display:block;transition:transform .3s ease}.roll-line{display:block;height:18px;line-height:14px;white-space:nowrap}.roll-line+.roll-line{color:var(--paper)}.roll-link:hover,header .roll-link:hover,footer .roll-link:hover{text-decoration:none}.roll-link:hover:before{transform:scaleY(1)}.roll-link:hover .roll-stack{transform:translateY(-18px)}.contact .contact-link,.not-found .back-link{height:30px;padding:8px 12px;background:var(--ink)}.contact .contact-link{padding-inline:12px}.contact .contact-link:before,.not-found .back-link:before{display:none}.contact .contact-link .roll-line,.not-found .back-link .roll-line{color:var(--paper)}@media (max-width:809px){header .menu-primary .roll-link{height:auto;padding:0;overflow:visible;line-height:inherit}header .menu-primary .roll-window{height:auto}header .menu-primary .roll-line{height:auto;line-height:inherit}header .menu-primary .roll-line+.roll-line{display:none}header .menu-primary .roll-link:before{display:none}header .menu-primary .roll-link:hover .roll-stack{transform:none}}@media (prefers-reduced-motion:reduce){.roll-stack,.roll-link:before{transition:none}}footer .roll-link{display:block;padding-block:3px}footer .roll-window{height:16px;padding-right:3px}footer .roll-line{line-height:16px}@media (max-width: 809px){footer h2{margin-bottom:8px}.footer-col:first-child{margin-bottom:28px}.footer-col:nth-child(2){margin-bottom:30px}}header.progetti-header{color:var(--ink);background:var(--paper);border-bottom:1px solid var(--ink)}.progetti-page{position:relative;z-index:4;background:var(--paper);color:var(--ink);min-height:100vh;overflow-x:hidden}.progetti-hero{max-width:1360px;margin:0 auto;padding:130px 40px 48px}.progetti-tagline{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;opacity:.7}.progetti-title-wrap h1{margin:0 0 20px;font-family:Switzer,Inter,sans-serif;font-size:clamp(52px,8vw,100px);font-weight:800;line-height:.95;letter-spacing:-.06em}.progetti-intro{max-width:760px;margin:0 0 36px;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:-.02em;opacity:.9}.progetti-filters{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:12px}.filter-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 16px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:13px;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.filter-btn:hover,.filter-btn.active{background:var(--ink);color:var(--paper)}.filter-count{display:inline-block;font-size:11px;padding:1px 6px;border-radius:10px;background:#80808033}.filter-btn.active .filter-count{background:var(--paper);color:var(--ink)}.progetti-list{max-width:1360px;margin:0 auto;padding:0 40px}.project-card{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;padding:64px 0;border-top:1px solid var(--ink)}.project-card:first-child{border-top:1px solid var(--ink)}.project-preview-wrap{border:1px solid var(--ink);background:var(--paper);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.project-preview-wrap:hover{transform:translateY(-2px);box-shadow:0 12px 30px #00000014}:root[data-theme=dark] .project-preview-wrap:hover{box-shadow:0 12px 30px #ffffff0d}.browser-chrome{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 14px;border-bottom:1px solid var(--ink);background:#80808014;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.browser-dots{display:flex;align-items:center;gap:6px}.browser-dots .dot{width:9px;height:9px;border-radius:50%;border:1px solid currentColor;opacity:.5}.browser-dots .dot-close{background:#ff5f56;border-color:#e0443e;opacity:.9}.browser-dots .dot-min{background:#ffbd2e;border-color:#dea123;opacity:.9}.browser-dots .dot-max{background:#27c93f;border-color:#1aab29;opacity:.9}.browser-address{letter-spacing:-.02em;opacity:.65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.project-image-box{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden;background:#000}.project-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.project-preview-wrap:hover .project-image{transform:scale(1.02)}.preview-overlay-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;opacity:0;transition:opacity .25s ease;text-decoration:none}.preview-overlay-btn span{padding:10px 18px;background:#fff;color:#000;font-size:12px;font-weight:700;letter-spacing:.04em;transform:translateY(8px);transition:transform .25s ease}.project-image-box:hover .preview-overlay-btn{opacity:1}.project-image-box:hover .preview-overlay-btn span{transform:translateY(0)}.project-info{display:flex;flex-direction:column}.project-meta-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.project-category{opacity:.65}.project-status{display:inline-flex;align-items:center;gap:6px;font-size:11px}.status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e}.project-title{margin:0 0 6px;font-family:Switzer,Inter,sans-serif;font-size:clamp(28px,3vw,40px);font-weight:800;line-height:1.05;letter-spacing:-.05em}.project-subtitle{margin:0 0 18px;font-size:14px;font-weight:600;line-height:1.35;letter-spacing:-.01em;opacity:.8}.project-desc{margin:0 0 24px;font-size:14px;line-height:1.6;letter-spacing:-.01em;opacity:.9}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px}.tech-tag{display:inline-block;padding:4px 8px;border:1px solid var(--ink);font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;background:transparent}.project-actions{display:flex;flex-wrap:wrap;gap:10px}.action-btn{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 18px;font-size:13px;font-weight:600;letter-spacing:-.02em;text-transform:uppercase;text-decoration:none;transition:all .2s ease}.action-btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.action-btn-primary:hover{background:transparent;color:var(--ink)}.action-btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}.action-btn-secondary:hover{background:var(--ink);color:var(--paper)}.progetti-cta{max-width:1360px;margin:0 auto;padding:96px 40px 120px;text-align:center;border-top:1px solid var(--ink)}.progetti-cta p{margin:0 0 20px;font-size:15px;font-weight:700;letter-spacing:-.02em}@media (max-width: 360px){.contact .contact-link,.progetti-cta .contact-link{font-size:11px;padding-inline:8px;max-width:100%}}@media (max-width: 899px){.progetti-hero{padding:100px 20px 32px}.progetti-hero h1{font-size:48px}.progetti-intro{font-size:14px}.progetti-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px;-webkit-overflow-scrolling:touch}.progetti-list{padding:0 20px}.project-card{grid-template-columns:1fr;gap:24px;padding:40px 0}.project-actions{flex-direction:column}.action-btn{width:100%}.progetti-cta{padding:64px 20px 96px}}
