/* Pagine dedicate, identità e interazioni condivise. */
:root{--flow:cubic-bezier(.22,.68,.2,1)}
.brand-face{width:52px;height:52px;object-fit:cover;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px #c9d8ef;transition:box-shadow .6s var(--flow)}
.brand:hover .brand-face{box-shadow:0 0 0 4px #dce8fa}.desktop-nav{gap:31px;font-size:15px;font-weight:500}.desktop-nav a{padding-block:10px;position:relative;transition:color .4s var(--flow)}.desktop-nav a:after{content:'';position:absolute;bottom:3px;left:0;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--flow)}.desktop-nav a[aria-current=page]{color:var(--blue)}.desktop-nav a[aria-current=page]:after,.desktop-nav a:hover:after{transform:scaleX(1)}
.chevron{width:16px;height:16px;display:inline-block;flex-shrink:0;vertical-align:middle;transition:transform .6s var(--flow),opacity .6s var(--flow)}a:hover>.chevron,button:hover>.chevron,a:hover .project-cta>.chevron,.service-options label:hover .chevron{transform:translateX(4px)}a:focus-visible>.chevron,button:focus-visible>.chevron{transform:translateX(4px)}
.button,.header-contact,.text-link,.project-cta,.footer-social a,.intro-skip{display:inline-flex;align-items:center;gap:16px;transition:color .5s var(--flow),background .5s var(--flow),border-color .5s var(--flow),transform .7s var(--flow)}.button:hover{transform:translateY(-2px)}.button span{font-size:inherit;line-height:inherit}.button>.chevron{width:18px;height:18px}.header-contact{gap:21px}.text-link{gap:13px}.project-cta{display:flex;justify-content:space-between}.service-list a .chevron{width:19px;height:19px}.floating-label>.chevron{width:30px;height:30px}.mini-button{display:inline-flex;align-items:center;gap:6px}.mini-button .chevron{width:10px;height:10px}.footer-social a{justify-content:space-between;gap:22px}.next-project>span:last-child{display:flex;align-items:center;gap:10px}.about-values li{display:flex;align-items:center;gap:12px}.about-values .chevron{width:13px;height:13px;color:var(--blue)}.service-list article{transition:padding .75s var(--flow),background .75s var(--flow)}.project-panel{transition:transform .85s var(--flow)}.glass-window{transition:transform 1s var(--flow)}.menu-content nav a{transition:color .55s var(--flow),padding .55s var(--flow)}.menu-content nav a:hover{padding-left:6px}.menu-content nav a>span{margin-left:0;font-size:inherit}.menu-content nav a>.chevron{margin-left:auto;width:24px;height:24px}.menu-content nav a[aria-current=page]{color:#bcd7ff}.menu-content>div>a{display:flex;align-items:center;gap:15px;width:fit-content}.intro-skip{gap:20px}
.page-heading{padding-top:82px;padding-bottom:70px;border-bottom:1px solid var(--line)}.page-heading h1{font-size:clamp(56px,6.2vw,90px);letter-spacing:-4.5px;margin-top:26px;max-width:900px}.page-heading h1 em{color:var(--blue)}.page-heading>p{color:var(--muted);font-size:15px;line-height:1.9;max-width:480px;margin-top:27px}.dedicated-portfolio{padding-block:15px 100px}.dedicated-portfolio .project:first-child{margin-top:60px}.bio-signature{color:var(--blue);width:min(350px,100%);margin:12px 0 24px -12px}.bio-signature .signature{display:block;width:100%;height:auto}.bio-signature>span{display:block;margin-left:24px;font-size:9px;letter-spacing:1.5px;color:var(--muted)}
.signature path{animation-duration:calc(var(--duration)*var(--draw-scale,.65));animation-delay:calc(var(--delay)*var(--draw-scale,.65))}.bio-signature path{animation:none;stroke-dashoffset:0}.motion-ready .bio-signature path{stroke-dashoffset:1}.motion-ready .bio-signature.is-visible path{animation:sign calc(var(--duration)*.52) linear calc(var(--delay)*.52) forwards}.intro-inner{width:min(650px,86vw)}.intro-inner p{animation-delay:2.6s;letter-spacing:3px}.signature-underline{stroke-width:1.7}
.intro{transition:transform 1.15s var(--flow),opacity .5s var(--flow);will-change:transform}.intro-active #site-shell{visibility:visible;transform:translateY(100vh);transition:transform 1.15s var(--flow);will-change:transform}.intro-active.intro-revealing #site-shell{transform:translateY(0)}.intro-active.intro-revealing .intro{transform:translateY(-100%)}.intro-active.intro-revealing .intro-skip{opacity:0}.intro-active .intro-inner{animation:introPresence .8s var(--flow) both}@keyframes introPresence{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page-transition{position:fixed;inset:0;z-index:110;background:var(--blue);color:#fff;display:none;place-items:center}.page-transition>div{width:min(560px,80vw);text-align:center}.page-transition p{font-size:8px;letter-spacing:2.5px;margin-top:10px;color:#c5d7ff}.page-leaving,.page-arriving{overflow:hidden}.page-leaving .page-transition,.page-arriving .page-transition{display:grid}.page-leaving .page-transition{animation:transitionCover .65s var(--flow) both;--draw-scale:.24}.page-arriving .page-transition{animation:transitionUncover .85s .12s var(--flow) both}.page-arriving .page-transition path{animation:none;stroke-dashoffset:0}.page-arriving #site-shell{animation:pageRise .95s var(--flow) both}.page-leaving #site-shell{pointer-events:none}@keyframes transitionCover{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes transitionUncover{to{transform:translateY(-100%)}}@keyframes pageRise{from{transform:translateY(45px)}to{transform:none}}
.home-contact-grid{grid-template-columns:.85fr 1.15fr;gap:85px}.contact-form{background:white;color:var(--ink);padding:40px 38px;border:1px solid #dce6f6;box-shadow:0 20px 70px #0a276b0a}.form-intro{padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:27px}.form-intro .eyebrow{font-size:8px;color:var(--blue);letter-spacing:1.6px}.form-intro h3{font-size:29px;line-height:1.25;margin-top:12px}.form-intro p{font-size:11px;color:var(--muted);margin-top:10px}.form-row{margin-bottom:22px;gap:23px;align-items:start}.contact-form label,.service-options legend{font-size:11px;font-weight:500;margin-bottom:9px}.field label>span{color:var(--blue);font-size:12px}.field label small,.service-options legend small{color:#77849b;font-size:9px;font-weight:400;margin-left:4px}.contact-form input,.contact-form textarea{border:1px solid #d9e3f0;background:#f7faff;color:var(--ink);padding:13px 14px;font-size:12px;transition:background .4s var(--flow),border-color .4s var(--flow),box-shadow .4s var(--flow);outline:none;line-height:1.6}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#7b89a1}.contact-form input:focus,.contact-form textarea:focus{border:1px solid #7192da;background:white;box-shadow:0 0 0 3px #1438b510}.service-options{border:0;padding:0;margin:0 0 23px;min-width:0}.service-options>div{display:flex;flex-wrap:wrap;gap:8px}.service-options label{position:relative;margin:0;font-weight:400;cursor:pointer}.service-options input{position:absolute;opacity:0;width:1px;height:1px;padding:0;pointer-events:none}.service-options span{display:block;border:1px solid #d8e3f0;padding:8px 11px;font-size:10px;color:#536582;transition:background .45s var(--flow),color .45s var(--flow),border-color .45s var(--flow)}.service-options input:checked+span{background:var(--blue);color:white;border-color:var(--blue)}.service-options input:focus-visible+span{outline:2px solid #6a99ec;outline-offset:3px}.service-options label:hover span{border-color:#7192da}.remaining{color:#7b89a1}.form-note{color:var(--muted);font-size:9px;margin-block:18px}.form-submit{width:100%;border:1px solid var(--blue);background:var(--blue);color:white;padding:17px 20px}.form-submit:hover{background:#0e2b94}.form-submit span{font-size:11px}.contact-form #form-status:empty{margin:0}.contact-form #form-status{font-size:11px;color:var(--blue);line-height:1.8}.contact-details a{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px}.contact-details small{width:100%}.contact-details .chevron{margin-left:auto}.contact-page{padding-top:85px;padding-bottom:100px}.contact-page-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:95px;align-items:start}.contact-page h1{font-size:clamp(55px,5.5vw,82px);letter-spacing:-4px;line-height:1.08;margin-top:28px}.contact-page h1 em{color:var(--blue)}.contact-page-copy>p{max-width:380px;margin-top:30px;color:var(--muted);line-height:1.9;font-size:14px}.contact-form-dedicated{padding:43px;box-shadow:15px 20px 0 #e9f2fc}.contact-direct{margin-top:42px}.contact-direct a{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:20px 0;font-size:16px;transition:color .5s}.contact-direct a:hover{color:var(--blue)}.contact-direct small{display:block;font-size:8px;letter-spacing:1.6px;color:var(--muted);margin-bottom:7px}.contact-note{display:flex;align-items:flex-start;gap:20px;margin-top:35px;padding:22px;background:var(--sky)}.note-mark{color:var(--blue);font-size:28px;line-height:1.2}.contact-note p{font-size:11px;line-height:1.9;color:#536582}
.business-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:95px;align-items:center;border-top:1px solid var(--line);padding-top:95px}.business-copy h2{margin-top:23px;font-size:48px}.business-copy>p{color:var(--muted);font-size:13px;margin-top:22px;max-width:350px;line-height:1.9}.business-copy .card-instructions{font-size:10px;max-width:330px}.business-visual{padding:35px 30px;background:var(--sky);position:relative}.business-card{display:block;border:0;padding:0;background:none;width:100%;aspect-ratio:1067/689;perspective:1600px;touch-action:manipulation;cursor:pointer;text-align:initial}.business-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.2,.65,.2,1)}.business-card.show-back .business-card-inner{transform:rotateY(180deg)}.business-card-front,.business-card-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 18px 40px #19367024;border-radius:7px;background:white;display:block}.business-card-back{transform:rotateY(180deg)}.business-card img{width:100%;height:100%;object-fit:cover}.business-card:focus-visible{outline-offset:10px}.business-caption{display:flex;align-items:center;justify-content:center;gap:10px;font-size:7px;letter-spacing:1.5px;color:#4c6892;margin-top:27px}.card-reset{background:none;border:0;border-bottom:1px solid #a7bedf;color:#4c6892;font-size:9px;padding:4px 0;margin:12px auto 0}.card-reset:not([hidden]){display:block}
@media(max-width:1100px){.desktop-nav{font-size:14px;gap:22px}.brand-face{width:46px;height:46px}.site-header{padding-inline:26px}.header-actions{gap:20px}.header-contact{font-size:12px;gap:12px}.brand{font-size:17px}.home-contact-grid{gap:45px}.contact-form{padding:30px 26px}.contact-page-grid{gap:50px}.contact-page h1{font-size:62px}.business-section{gap:50px}.business-copy h2{font-size:42px}.contact-form-dedicated{padding:33px}}
@media(max-width:900px) and (min-width:761px){.header-contact{display:none}.desktop-nav{gap:18px;font-size:13px}.home-contact-grid{grid-template-columns:1fr;gap:45px}.contact-copy{max-width:500px}.contact-copy>p{max-width:480px}.contact-page-grid{grid-template-columns:1fr;gap:45px}.contact-page h1 br:nth-of-type(2){display:none}.contact-page-copy>p{max-width:520px}.contact-note{max-width:550px}.business-section{grid-template-columns:1fr 1.1fr;gap:30px}.business-copy h2{font-size:36px}}
@media(max-width:760px){.brand-face{width:42px;height:42px}.brand{font-size:15px;gap:10px}.site-header{padding-inline:20px}.header-actions{gap:17px}.header-contact{font-size:10px;gap:9px}.page-heading{padding-top:52px;padding-bottom:42px}.page-heading h1{font-size:clamp(44px,10.8vw,68px);letter-spacing:-2.7px;margin-top:22px}.page-heading>p{font-size:13px;margin-top:22px}.dedicated-portfolio{padding-block:0 60px}.dedicated-portfolio .project:first-child{margin-top:35px}.bio-signature{width:280px;margin-top:4px;margin-bottom:23px}.bio-signature>span{font-size:8px}.intro-inner{width:94vw}.page-transition>div{width:89vw}.page-transition p{font-size:7px}.home-contact-grid{grid-template-columns:1fr;gap:40px}.contact-form{padding:27px 22px}.form-intro h3{font-size:27px}.form-row{gap:15px;margin-bottom:20px}.field label small{display:block;margin:2px 0 0}.field label{min-height:32px;display:flex;align-items:start;gap:3px;flex-wrap:wrap}.field label small{width:100%;line-height:1.3}.message-field label{min-height:0}.contact-form input{font-size:11px;padding:12px}.contact-form textarea{font-size:12px;padding:12px}.service-options span{font-size:9px;padding:8px 9px}.form-submit{padding:16px 13px;gap:8px}.form-submit span{font-size:10px}.contact-page{padding-top:52px;padding-bottom:65px}.contact-page-grid{grid-template-columns:1fr;gap:40px}.contact-page h1{font-size:clamp(47px,11.5vw,65px);letter-spacing:-2.7px;margin-top:24px}.contact-page-copy>p{font-size:13px;margin-top:25px}.contact-direct{margin-top:25px}.contact-direct a{font-size:14px}.contact-note{margin-top:26px;padding:20px}.contact-form-dedicated{padding:28px 22px;box-shadow:8px 10px 0 #e9f2fc;margin-right:8px}.business-section{grid-template-columns:1fr;gap:35px;padding-top:65px}.business-copy h2{font-size:41px}.business-copy>p{font-size:12px}.business-copy .card-instructions{font-size:10px;max-width:100%}.business-visual{padding:25px 18px}.business-caption{font-size:6px;letter-spacing:1px;gap:7px}.business-caption .chevron{width:12px;height:12px}.business-card-front,.business-card-back{border-radius:5px}.footer-social a{gap:15px}.menu-content nav a{gap:18px}.menu-content nav a>.chevron{width:22px;height:22px}}
@media(max-width:360px){.header-contact{display:none}.form-row{grid-template-columns:1fr}.field label{min-height:0;display:block}.field label small{display:inline;margin-left:4px}.contact-form{padding:25px 18px}.business-caption{letter-spacing:.5px}.form-submit span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.bio-signature path{stroke-dashoffset:0}.intro-active #site-shell{transform:none}.page-arriving #site-shell{transform:none}.business-card-inner,.chevron{transition:none}.intro-active .intro{display:none}}

/* Overlay a pieno schermo e blocco dello scorrimento, incluso iOS. */
html{overflow-x:clip}
html.intro-active,html.page-arriving,html.page-leaving,html.menu-open,html.scroll-locked{overflow:hidden!important;overscroll-behavior:none;scroll-behavior:auto}
html.intro-active body,html.page-arriving body,html.page-leaving body,html.menu-open body{overflow:hidden;overscroll-behavior:none}
html.scroll-locked body{position:fixed;top:var(--locked-top,0px);left:0;right:0;width:100%;overflow:hidden;overscroll-behavior:none}
.intro,.page-transition{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;overflow:hidden;overscroll-behavior:none;touch-action:none;box-sizing:border-box}
.intro-active #site-shell{transform:translateY(100vh);transform:translateY(100dvh)}
.intro-active.intro-revealing #site-shell{transform:translateY(0)}
.intro-skip{bottom:max(30px,env(safe-area-inset-bottom));right:max(25px,env(safe-area-inset-right))}
.full-menu{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;box-sizing:border-box;padding-top:max(26px,env(safe-area-inset-top));padding-bottom:max(26px,env(safe-area-inset-bottom))}
.full-menu::backdrop{background:var(--blue);overscroll-behavior:none}
.ornament-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;flex:none}
.photo-corner .ornament-icon,.profile-photo-mark .ornament-icon,.note-mark .ornament-icon{display:block}
.expertise-strip i{line-height:1;display:inline-flex;align-items:center}
@media(max-width:760px){.expertise-strip i{display:none}}

/* Firma statica nei soli passaggi interni: circa un secondo in totale. */
.page-transition .signature path{animation:none!important;stroke-dashoffset:0}
.page-leaving .page-transition{animation:transitionCover .30s var(--flow) both}
.page-arriving .page-transition{animation:transitionUncover .42s .05s var(--flow) both}
.page-arriving #site-shell{animation:pageRise .47s var(--flow) both}

/* Portfolio: anteprime ampie, pannelli alternati e gerarchia più compatta. */
.work-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:90px;align-items:end;padding-block:75px 60px;border-bottom:1px solid var(--line)}
.work-heading h1{font-size:clamp(58px,5.6vw,82px);letter-spacing:-4px;margin-top:24px}.work-heading h1 em{color:var(--blue)}.work-introduction{max-width:365px;margin-left:auto}.work-introduction>p{font-size:14px;color:var(--muted);line-height:1.9}.work-introduction nav{margin-top:27px}.work-introduction nav a{display:flex;align-items:center;gap:15px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px;transition:color .5s}.work-introduction nav a:hover{color:var(--blue)}.work-introduction nav small{font-size:9px;color:var(--muted)}.work-introduction nav .chevron{margin-left:auto}
.work-collection{padding-top:65px;padding-bottom:90px}.work-item{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;margin-bottom:80px}.work-visual{min-width:0;background:#e3eefc;padding:28px 35px 30px}.work-index,.work-visual-note{display:block;font-size:8px;letter-spacing:1.7px;color:#506d98}.work-visual>a{display:block;margin-block:28px 22px;box-shadow:0 15px 35px #15386914;overflow:hidden;transition:box-shadow .7s var(--flow)}.work-visual>a:hover{box-shadow:0 18px 40px #15386928}.work-browser{display:flex;align-items:center;gap:4px;background:white;padding:10px 12px}.work-browser i{width:4px;height:4px;border-radius:50%;background:#b4c5df}.work-browser>span{font-size:7px;color:#70839f;margin-left:14px;letter-spacing:.6px}.work-visual img{width:100%;height:auto;transition:transform 1s var(--flow)}.work-visual>a:hover img{transform:scale(1.018)}.work-detail{position:relative;z-index:1;background:#112c69;color:#fff;margin-left:-28px;padding:42px 38px;min-width:0;box-shadow:0 18px 45px #1538690f}.work-detail>.eyebrow{font-size:8px;color:#bdd4ff;letter-spacing:1.6px}.work-detail h2{font-size:39px;letter-spacing:-1.8px;margin-top:22px;line-height:1.15}.work-detail>p{font-size:13px;line-height:1.9;color:#d0dcf4;margin-top:21px}.work-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.work-tags>span{border:1px solid #ffffff30;padding:5px 9px;font-size:9px;color:#dae5fb}.work-link{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff35;padding-top:19px;margin-top:30px;font-size:11px}.work-item-reverse{grid-template-columns:1fr 1.5fr}.work-item-reverse .work-visual{grid-column:2;grid-row:1;background:#eaf0f7}.work-item-reverse .work-detail{grid-column:1;grid-row:1;margin-left:0;margin-right:-28px;background:#d4e9fc;color:var(--ink);box-shadow:none}.work-item-reverse .work-detail>.eyebrow{color:#496b99}.work-item-reverse .work-detail>p{color:#49617e}.work-item-reverse .work-tags>span{border-color:#a9c3df;color:#49617e}.work-item-reverse .work-link{border-color:#a9c3df}.work-next{display:grid;grid-template-columns:1fr 1.3fr auto;gap:30px;align-items:center;border-block:1px solid var(--line);padding-block:34px}.work-next>.eyebrow{font-size:8px}.work-next>p{font:30px/1.3 Manrope,sans-serif;letter-spacing:-1px}.work-next>p em{color:var(--blue)}

/* Chi sono: ritratto e racconto insieme, poi metodo e strumenti. */
.profile-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:85px;align-items:center;padding-block:80px 105px}.profile-introduction h1{font-size:clamp(55px,5.2vw,76px);letter-spacing:-3.8px;margin-top:25px;line-height:1.1}.profile-introduction h1 em{color:var(--blue)}.profile-bio{margin-top:28px;max-width:460px}.profile-bio p{font-size:14px;color:var(--muted);line-height:1.9;margin-top:16px}.profile-introduction .bio-signature{margin-top:10px;margin-bottom:0;width:min(320px,100%)}.profile-photo{position:relative;isolation:isolate;margin-right:18px;padding-bottom:22px}.profile-photo:before{content:'';position:absolute;inset:28px -22px -6px 26px;background:#dceafb;z-index:-1}.profile-photo-frame{overflow:hidden;background:#dceafb}.profile-photo-frame img{width:100%;height:505px;object-fit:cover;object-position:52% center}.profile-photo-caption{position:absolute;left:-24px;bottom:0;min-width:68%;padding:21px 28px;background:var(--blue);color:white}.profile-photo-caption>span{font:italic 30px Georgia,serif}.profile-photo-caption>small{display:block;margin-top:5px;font-size:8px;letter-spacing:1.7px}.profile-photo-mark{position:absolute;right:-25px;top:-22px;font-size:65px;line-height:1;color:var(--blue)}.profile-approach{padding-block:85px;background:var(--sky)}.profile-approach-heading{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;align-items:start}.profile-approach-heading>.eyebrow{padding-top:12px}.profile-approach-heading h2{font-size:54px}.profile-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:55px}.profile-principles article{border-top:1px solid #b7cce7;padding-top:22px}.profile-principles article>span{font-size:9px;letter-spacing:1.5px;color:#506b94}.profile-principles h3{font-size:23px;line-height:1.35;letter-spacing:-.7px;margin-top:22px}.profile-principles p{font-size:13px;line-height:1.85;color:#536986;margin-top:15px}.profile-toolbox{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding-block:90px 100px;align-items:center}.profile-toolbox h2{font-size:50px;margin-top:21px}.profile-toolbox-copy>p{font-size:14px;color:var(--muted);line-height:1.9;max-width:430px}.profile-toolbox .skills{margin-block:24px}.profile-toolbox .skills span{padding:9px 16px;background:#f0f6fd;border-color:#d8e5f6;font-size:11px}.profile-toolbox .text-link{margin-top:8px}

/* Footer comune: invito, riferimenti e navigazione su blu profondo. */
.redesigned-footer{background:#102653;color:#fff;padding-top:0}.footer-invitation{display:flex;justify-content:space-between;gap:55px;align-items:flex-end;padding-block:65px 50px;border-bottom:1px solid #ffffff24}.footer-invitation .eyebrow{font-size:9px;color:#9dbce9}.footer-invitation h2{font-size:clamp(42px,4.8vw,66px);letter-spacing:-2.5px;margin-top:22px;line-height:1.08}.footer-invitation h2 em{color:#b8d8ff}.footer-talk{display:flex;align-items:center;gap:35px;padding:18px 0 16px;border-bottom:1px solid #9dbce9;font-size:13px;margin-bottom:6px;transition:color .6s var(--flow),border-color .6s var(--flow)}.footer-talk:hover{color:#b8d8ff;border-color:#fff}.footer-talk>.chevron{width:24px;height:24px}.footer-columns{display:grid;grid-template-columns:1.45fr .7fr 1fr;gap:65px;padding-block:45px 48px}.redesigned-footer .brand{width:fit-content;font-size:19px}.redesigned-footer .brand-face{border-color:#ffffffd9}.redesigned-footer .brand small{color:#afc2e0}.footer-identity>p{font-size:11px;line-height:1.9;color:#afc2e0;margin-top:20px}.footer-columns .eyebrow{font-size:8px;letter-spacing:1.6px;color:#8facd7;margin-bottom:18px}.footer-navigation>a{display:flex;align-items:center;justify-content:space-between;max-width:150px;font-size:12px;margin-top:10px;gap:15px;transition:color .5s}.footer-navigation>a:hover,.footer-connect a:hover{color:#b8d8ff}.footer-connect>a{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;margin-top:11px;max-width:290px;transition:color .5s}.footer-networks{display:flex;flex-wrap:wrap;gap:22px;margin-top:25px}.footer-networks>a{display:flex;align-items:center;gap:7px;font-size:10px;color:#afc2e0;transition:color .5s}.footer-networks .chevron{width:12px;height:12px}.redesigned-footer .footer-bottom{border-color:#ffffff24;color:#8facd7;padding-block:22px;font-size:9px}.redesigned-footer .footer-bottom small{font-size:9px}.redesigned-footer .footer-bottom>div{display:flex;align-items:center;gap:30px}.redesigned-footer .footer-bottom button,.redesigned-footer .footer-bottom a{display:inline-flex;align-items:center;gap:9px;font-size:9px;color:#afc2e0;transition:color .5s}.redesigned-footer .footer-bottom button:hover,.redesigned-footer .footer-bottom a:hover{color:#fff}.redesigned-footer .footer-bottom .chevron{width:12px;height:12px}
@media(max-width:1100px){.work-heading{gap:50px}.work-heading h1{font-size:65px}.work-item{grid-template-columns:1.4fr 1fr}.work-item-reverse{grid-template-columns:1fr 1.4fr}.work-visual{padding:23px 25px}.work-detail{padding:32px 28px}.work-detail h2{font-size:32px}.work-detail>p{font-size:12px}.profile-hero{gap:55px}.profile-introduction h1{font-size:60px}.profile-photo-frame img{height:470px}.profile-approach-heading h2{font-size:47px}.profile-principles{gap:30px}.profile-principles h3{font-size:21px}.footer-columns{gap:35px;grid-template-columns:1.25fr .65fr 1fr}.footer-connect>a{font-size:11px}}
@media(max-width:900px) and (min-width:761px){.work-detail{padding:28px 24px;margin-left:-20px}.work-item-reverse .work-detail{margin-right:-20px}.work-detail h2{font-size:28px}.work-visual{padding:22px 20px}.work-tags>span{font-size:8px}.profile-hero{gap:35px}.profile-introduction h1{font-size:50px}.profile-bio p{font-size:13px}.profile-photo-frame img{height:440px}.footer-columns{grid-template-columns:1fr 1fr}.footer-identity{grid-column:1/-1}.footer-identity>p br{display:none}.footer-navigation>a{max-width:230px}}
@media(max-width:760px){.work-heading{display:block;padding-block:50px 35px}.work-heading h1{font-size:clamp(47px,11.8vw,68px);letter-spacing:-2.7px;margin-top:22px}.work-introduction{max-width:none;margin-top:25px}.work-introduction>p{font-size:12px}.work-introduction nav{display:flex;gap:25px;margin-top:17px}.work-introduction nav a{font-size:10px;gap:7px;flex:1;white-space:nowrap}.work-introduction nav small{font-size:8px}.work-introduction nav .chevron{width:13px;height:13px}.work-collection{padding-block:35px 60px}.work-item,.work-item-reverse{display:flex;flex-direction:column;align-items:stretch;margin-bottom:48px}.work-visual{padding:22px 18px 27px}.work-visual>a{margin-block:19px 16px}.work-index,.work-visual-note{font-size:7px;letter-spacing:1.2px}.work-browser{padding:8px}.work-browser>span{font-size:6px;margin-left:8px}.work-detail,.work-item-reverse .work-detail{margin:-12px 0 0 16px;padding:28px 25px;box-shadow:none}.work-item-reverse .work-detail{margin: -12px 16px 0 0}.work-detail h2{font-size:32px;margin-top:16px}.work-detail>.eyebrow{font-size:7px}.work-detail>p{font-size:12px;margin-top:17px}.work-tags{margin-top:19px}.work-link{margin-top:23px;padding-top:16px}.work-next{display:block;padding-block:28px}.work-next>p{font-size:29px;margin-top:17px}.work-next>a{margin-top:21px}.profile-hero{display:flex;flex-direction:column;gap:44px;align-items:stretch;padding-block:50px 70px}.profile-introduction h1{font-size:clamp(46px,11.6vw,65px);letter-spacing:-2.7px;margin-top:22px}.profile-bio{margin-top:23px}.profile-bio p{font-size:13px}.profile-introduction .bio-signature{width:280px;margin-top:8px}.profile-photo{margin:0 12px 0 14px}.profile-photo-frame img{height:380px}.profile-photo:before{inset:20px -14px -5px 18px}.profile-photo-caption{left:-14px;min-width:75%;padding:19px 24px}.profile-photo-caption>span{font-size:28px}.profile-photo-mark{right:-15px;top:-19px;font-size:55px}.profile-approach{padding-block:60px}.profile-approach-heading{display:block}.profile-approach-heading>.eyebrow{padding:0}.profile-approach-heading h2{font-size:41px;margin-top:21px}.profile-principles{grid-template-columns:1fr;gap:28px;margin-top:35px}.profile-principles article{padding-top:18px}.profile-principles h3{margin-top:13px;font-size:23px}.profile-principles p{font-size:12px;max-width:450px;margin-top:12px}.profile-toolbox{grid-template-columns:1fr;gap:26px;padding-block:60px 70px}.profile-toolbox h2{font-size:42px}.profile-toolbox-copy>p{font-size:13px}.profile-toolbox .skills{gap:7px;margin-block:21px}.profile-toolbox .skills span{font-size:10px;padding:8px 12px}.footer-invitation{display:block;padding-block:46px 35px}.footer-invitation h2{font-size:43px;letter-spacing:-2px;margin-top:20px}.footer-invitation .eyebrow{font-size:8px}.footer-talk{width:fit-content;margin-top:25px;font-size:11px;gap:26px;padding-block:10px}.footer-talk>.chevron{width:20px;height:20px}.footer-columns{grid-template-columns:1fr;gap:30px;padding-block:32px}.redesigned-footer .brand{font-size:17px}.footer-identity>p{font-size:10px;margin-top:17px}.footer-navigation{display:grid;grid-template-columns:1fr 1fr;gap:10px 25px}.footer-navigation>.eyebrow{grid-column:1/-1;margin-bottom:3px}.footer-navigation>a{max-width:none;font-size:11px;margin:0;padding-bottom:5px}.footer-connect>a{max-width:none;font-size:12px}.footer-columns .eyebrow{font-size:7px}.footer-networks{margin-top:20px}.redesigned-footer .footer-bottom{display:block;padding-block:20px}.redesigned-footer .footer-bottom small{display:block;font-size:8px}.redesigned-footer .footer-bottom>div{margin-top:17px;justify-content:space-between;gap:15px}.redesigned-footer .footer-bottom button,.redesigned-footer .footer-bottom a{font-size:9px}}

/* Segni geometrici: cornici intrecciate e separatori editoriali. */
.photo-corner,.profile-photo-mark{display:grid;place-items:center;width:84px;height:84px;border:1px solid #c5d8f0;border-radius:50%;background:#f2f7ff;box-shadow:0 10px 28px #1438b50b;font-size:58px;pointer-events:none}
.photo-corner{top:0;right:-16px}
.profile-photo-mark{top:-20px;right:-22px}
.expertise-strip i{width:24px;height:16px;justify-content:center;gap:5px;font-size:0}
.expertise-strip i::before,.expertise-strip i::after{content:"";display:block;width:1px;height:12px;background:currentColor;transform:rotate(28deg);opacity:.55}
.expertise-strip i::after{height:7px;opacity:.3}
.expertise-strip i .ornament-icon{display:none}
.note-mark{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;background:#fff;border:1px solid #d3e1f4;border-radius:12px;font-size:28px}
@media(max-width:760px){.photo-corner,.profile-photo-mark{width:64px;height:64px;font-size:44px}.photo-corner{right:-10px}.profile-photo-mark{right:-10px;top:-14px}.expertise-strip i{display:none}}

/* Competenze: nastro continuo con trascinamento e inerzia. */
.expertise-strip{position:relative;display:block;padding:0;overflow:hidden;text-align:left}
.expertise-viewport{overflow:hidden;cursor:grab;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;padding-block:27px;margin-right:0}
.expertise-viewport.is-dragging{cursor:grabbing}
.expertise-viewport:focus-visible{outline:2px solid #b9dfff;outline-offset:-5px}
.expertise-track{display:flex;width:max-content;will-change:transform}
.expertise-group{display:flex;align-items:center;justify-content:space-around;flex:none;min-width:100vw;gap:clamp(28px,4vw,68px);padding-inline:32px;box-sizing:border-box}
.expertise-group>span{flex:none;white-space:nowrap;font-size:11px;letter-spacing:2px}
.expertise-group i{display:inline-flex;flex:none;width:14px;height:14px;gap:4px}





@media(max-width:760px){.expertise-viewport{padding-block:24px;margin-right:0}.expertise-group{min-width:100vw;gap:30px;padding-inline:22px}.expertise-group>span{font-size:10px;letter-spacing:1.5px}.expertise-group i{display:inline-flex}}

/* Nessun alone al tocco o al focus automatico; focus visibile da tastiera. */
a,button,summary,[role="button"],.expertise-viewport{-webkit-tap-highlight-color:transparent}
html:not(.keyboard-navigation) :is(a,button,[tabindex]):focus{outline:none}
/* Il menu stesso accompagna la navigazione; la firma resta nella navbar. */
.full-menu::backdrop{background:transparent}
.full-menu.is-opening{animation:menuEnter .58s var(--flow) both}
.full-menu.is-closing{animation:menuExit .42s var(--flow) both;pointer-events:none}
.full-menu.is-departing{animation:menuExit .70s var(--flow) both;pointer-events:none}
.menu-arriving .full-menu:not([open]){display:block}
.menu-arriving #site-shell{transform:translateY(100vh);transform:translateY(100dvh)}
.menu-arriving.menu-arrival-motion #site-shell{animation:menuPageRise .70s var(--flow) both}
.content-arriving #site-shell{animation:contentRise .46s var(--flow) both}
html.menu-arriving,html.content-arriving{overflow:hidden!important;overscroll-behavior:none;scroll-behavior:auto}
@keyframes menuEnter{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes menuExit{from{transform:translateY(0)}to{transform:translateY(-100%)}}
@keyframes menuPageRise{from{transform:translateY(100dvh)}to{transform:translateY(0)}}
@keyframes contentRise{from{opacity:.5;transform:translateY(30px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.full-menu.is-opening,.full-menu.is-closing,.full-menu.is-departing,.menu-arriving.menu-arrival-motion #site-shell,.content-arriving #site-shell{animation:none}.menu-arriving #site-shell{transform:none}}

/* Servizi: l’intera riga è un link; si muovono i contenuti, senza ricalcolare il layout. */
.service-list .service-row{display:grid;grid-template-columns:65px 1fr 1.1fr 40px;gap:30px;align-items:center;justify-items:start;width:auto;height:auto;padding:33px 12px;border:0;border-bottom:1px solid #bccde3;background:transparent;color:var(--ink);font-size:inherit;transition:background-color .55s var(--flow),opacity .95s var(--flow),transform .95s var(--flow)}
.service-row>:not(.service-arrow){transition:transform .65s var(--flow)}
.service-list .service-row:is(:hover,:focus-visible){background-color:#dfebfa;color:var(--ink)}
.service-row:is(:hover,:focus-visible)>:not(.service-arrow){transform:translateX(7px)}
.service-row .service-arrow{display:grid;place-items:center;width:24px;height:24px;justify-self:center;color:var(--blue)}
.service-row .service-arrow .chevron{width:21px;height:21px;transition:transform .65s var(--flow)}
.service-row:is(:hover,:focus-visible) .service-arrow .chevron{transform:translateX(7px)}
.contact-note{align-items:center}
.note-mark .mail-icon{display:block;width:24px;height:24px}
@media(max-width:760px){.service-list .service-row{grid-template-columns:25px 1fr 26px;gap:12px;padding:25px 8px}.service-row .service-arrow{grid-column:3;grid-row:1/3}.service-row:is(:hover,:focus-visible)>:not(.service-arrow){transform:translateX(4px)}.service-row:is(:hover,:focus-visible) .service-arrow .chevron{transform:translateX(4px)}}
@media(prefers-reduced-motion:reduce){.service-row>:not(.service-arrow),.service-row .service-arrow .chevron{transition:none;transform:none!important}}

/* Informativa leggibile e consenso ai soli strumenti facoltativi. */
.privacy-heading{padding-block:78px 56px;border-bottom:1px solid var(--line)}
.privacy-heading h1{font-size:clamp(62px,6vw,88px);letter-spacing:-4px;margin-top:25px}.privacy-heading h1 em{color:var(--blue)}
.privacy-heading>p{max-width:580px;margin-top:27px;font-size:15px;line-height:1.9;color:var(--muted)}.privacy-date{display:block;margin-top:24px;font-size:10px;color:var(--muted)}
.privacy-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:85px;align-items:start;padding-block:60px 100px}
.privacy-index{position:sticky;top:140px;display:grid;gap:12px}.privacy-index>.eyebrow{font-size:8px;margin-bottom:10px}.privacy-index>a{font-size:11px;color:var(--muted);transition:color .4s}.privacy-index>a:hover{color:var(--blue)}
.privacy-content{min-width:0;max-width:850px}.privacy-content>section{padding-bottom:42px;margin-bottom:36px;border-bottom:1px solid var(--line);scroll-margin-top:130px}.privacy-content>section:last-child{border:0;margin-bottom:0;padding-bottom:0}
.privacy-content .eyebrow{font-size:8px;color:var(--blue)}.privacy-content h2{font-size:31px;letter-spacing:-1px;line-height:1.25;margin-block:13px 22px}.privacy-content h3{font-size:19px;letter-spacing:-.4px;margin-block:26px 14px}.privacy-content p,.privacy-content li{font-size:13px;line-height:1.95;color:#536582}.privacy-content p+p{margin-top:15px}.privacy-content ul{padding-left:20px;margin-block:18px}.privacy-content li+li{margin-top:14px}.privacy-content strong{color:var(--ink);font-weight:600}.privacy-content p a,.privacy-content li a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.privacy-table-wrap{overflow-x:auto;max-width:100%;margin-block:24px}.privacy-table{border-collapse:collapse;width:100%;text-align:left;font-size:11px;color:#536582}.privacy-table caption{text-align:left;padding-bottom:13px;color:var(--ink);font-size:12px;font-weight:600}.privacy-table th,.privacy-table td{padding:15px 12px;border:1px solid var(--line);vertical-align:top;line-height:1.8}.privacy-table thead{background:var(--sky);color:var(--ink)}.privacy-table tbody th{width:27%;font-weight:500}.privacy-table code{font-size:10px;overflow-wrap:anywhere}.privacy-table small{display:block;font-size:9px;color:var(--muted);margin-top:5px}
.privacy-preferences{padding:23px;background:var(--sky);margin-block:24px}.privacy-preferences .button{margin-top:17px;font-size:11px}.privacy-preferences .button>span{font-size:20px}
.contact-form .privacy-ack{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:11px;margin-block:20px 24px}.contact-form .privacy-ack input{width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--blue);cursor:pointer;border-radius:3px;box-shadow:none}.contact-form .privacy-ack label{font-size:10px;font-weight:400;line-height:1.8;margin:0;cursor:pointer;color:#536582}.privacy-ack a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.privacy-ack label>span{color:var(--blue)}
.contact-form .form-submit:disabled{cursor:not-allowed;opacity:.55}.contact-form .form-submit[aria-busy="true"]{cursor:wait}.privacy-ack input:focus-visible{outline:2px solid #659dff;outline-offset:3px}
.redesigned-footer .footer-bottom>div{flex-wrap:wrap;row-gap:13px}.redesigned-footer .footer-bottom [data-cookie-preferences]{text-align:left}
.cookie-panel{position:fixed;z-index:90;left:max(24px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));width:min(520px,calc(100% - 48px));max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--ink);border:1px solid #cfdbed;box-shadow:0 16px 65px #10254d22;padding:28px;box-sizing:border-box}
.cookie-panel[hidden]{display:none}.cookie-panel .eyebrow{font-size:8px;color:var(--blue)}.cookie-panel h2{font-size:25px;line-height:1.25;letter-spacing:-.8px;margin-top:12px}.cookie-panel p{font-size:12px;line-height:1.8;color:#536582;margin-top:13px}.cookie-details{display:inline-block;font-size:11px;color:var(--blue);text-decoration:underline;text-underline-offset:3px;margin-top:13px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.cookie-actions button{font-size:11px;font-weight:500;color:var(--blue);background:#edf4ff;border:1px solid #a5bfe9;padding:13px 12px;transition:background .4s,border-color .4s}.cookie-actions button:hover{background:#dceaff;border-color:var(--blue)}
html:is(.intro-active,.page-arriving,.page-leaving,.menu-arriving,.menu-open) .cookie-panel{visibility:hidden;pointer-events:none}
@media(max-width:1000px){.privacy-layout{grid-template-columns:180px minmax(0,1fr);gap:40px}}
@media(max-width:760px){.privacy-heading{padding-block:50px 35px}.privacy-heading h1{font-size:58px;letter-spacing:-3px}.privacy-heading>p{font-size:13px;margin-top:22px}.privacy-date{font-size:9px}.privacy-layout{grid-template-columns:1fr;gap:35px;padding-block:32px 65px}.privacy-index{position:static;grid-template-columns:1fr 1fr;gap:12px 20px;padding-bottom:25px;border-bottom:1px solid var(--line)}.privacy-index>.eyebrow{grid-column:1/-1;margin-bottom:4px}.privacy-index>a{font-size:10px}.privacy-content h2{font-size:27px}.privacy-content h3{font-size:18px}.privacy-content p,.privacy-content li{font-size:12px}.privacy-content>section{padding-bottom:30px;margin-bottom:28px}.privacy-table{font-size:10px;min-width:0}.privacy-table th,.privacy-table td{padding:10px 8px}.privacy-table code{font-size:9px}.privacy-table small{font-size:8px}.privacy-preferences{padding:19px}.privacy-preferences .button{font-size:10px}.cookie-panel{left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 28px);max-height:calc(100dvh - 28px);padding:22px}.cookie-panel h2{font-size:23px}.cookie-panel p{font-size:11px}.cookie-actions{gap:9px}.cookie-actions button{font-size:10px;padding:13px 7px}.contact-form .privacy-ack label{font-size:10px}}

/* Banner più compatto su telefono, con comandi comodi da toccare. */
@media(max-width:760px){.cookie-panel{left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:16px;max-height:calc(100dvh - 24px)}.cookie-panel .eyebrow{display:none}.cookie-panel h2{font-size:20px;margin-top:0;letter-spacing:-.5px}.cookie-panel p{font-size:11px;line-height:1.65;margin-top:9px}.cookie-details{font-size:10px;margin-top:8px}.cookie-actions{margin-top:13px;gap:9px}.cookie-actions button{min-height:44px;padding:9px 7px}}

.cookie-close{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--blue);transition:background .3s;border-radius:50%}
.cookie-close svg{width:20px;height:20px}.cookie-close:hover{background:#edf4ff}.cookie-panel h2{padding-right:28px}.cookie-panel .cookie-session-note{font-size:10px;line-height:1.5;margin-top:8px}
@media(max-width:760px){.cookie-close{top:5px;right:5px}.cookie-panel h2{padding-right:30px}.cookie-panel .cookie-session-note{font-size:10px;line-height:1.45;margin-top:7px}}

/* Il banner entra da sinistra e torna a sinistra alla chiusura. */
.cookie-panel:not([hidden]){animation:cookieSlideIn .52s var(--flow) both}
.cookie-panel.is-closing{animation:cookieSlideOut .38s var(--flow) both;pointer-events:none}
html:is(.intro-active,.page-arriving,.page-leaving,.menu-arriving,.menu-open) .cookie-panel{animation-play-state:paused}
@keyframes cookieSlideIn{from{transform:translateX(calc(-100% - 80px));opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes cookieSlideOut{from{transform:var(--cookie-exit-transform,translateX(0));opacity:var(--cookie-exit-opacity,1)}to{transform:translateX(calc(-100% - 80px));opacity:0}}
@media(prefers-reduced-motion:reduce){.cookie-panel:not([hidden]),.cookie-panel.is-closing{animation:none}}
