:root{--navy:#142e45;--blue:#22455d;--paper:#fff;--mist:#eef3f5;--ink:#203647;--muted:#536775;--line:#d6e0e5;--gold:#b8863b;--mint:#c7e7df;--sans:"Segoe UI",Arial,sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit}button,a,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h2{font-size:clamp(32px,3.4vw,46px);line-height:1.17;letter-spacing:-1.7px}h3{line-height:1.3;letter-spacing:-.6px}.container{width:min(1184px,calc(100% - 96px));margin-inline:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:14px}.skip-link:focus{top:12px}
.header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}.navigation{min-height:90px;display:flex;justify-content:space-between;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:21px;letter-spacing:-.6px;line-height:1.2}.brand img{object-fit:contain}.brand small{display:block;font-size:12px;letter-spacing:2px;margin-top:5px;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:34px;font-size:14px}.nav-links a{text-decoration:none}.nav-links a:hover{text-decoration:underline;text-underline-offset:5px}.nav-contact{padding:9px 17px;border:1px solid var(--line);border-radius:4px}.nav-contact span{padding-left:18px}.menu-toggle{display:none}
.hero{background:var(--navy);color:white}.hero-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center;padding-top:88px;padding-bottom:75px}.intro-label{display:flex;gap:10px;align-items:center;font-size:13px;color:#c5d6df;margin-bottom:28px}.intro-label>span{width:7px;height:7px;border-radius:50%;background:var(--mint)}h1{font-size:clamp(52px,5.8vw,80px);line-height:1.04;letter-spacing:-3.5px;margin-bottom:29px}.hero-lead{font-size:22px;line-height:1.45;max-width:440px;margin-bottom:17px}.hero-description{color:#c2d1db;max-width:460px;font-size:16px}.actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:35px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:13px 21px;text-decoration:none;border-radius:4px;font-size:14px;font-weight:600;background:var(--mint);color:var(--navy);transition:background .2s}.button:hover{background:#e0f2ec}.text-link{font-size:13px;text-underline-offset:5px}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:23px;border-top:1px solid #3c5263;font-size:12px;color:#c2d1db}.hero-bottom a{text-decoration:none}
.process-map{background:var(--blue);border-radius:9px;padding:30px 30px 22px;transform:rotate(-2deg);box-shadow:14px 18px 0 #0e263c}.map-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;font-size:13px;color:#d5e4eb}.map-heading>span+span{font-size:25px}.map-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}.map-inputs span{padding:11px 5px;border:1px solid #718b9b;border-radius:4px;font-size:12px;background:#2b5069}.map-connections{display:flex;justify-content:space-around;height:38px;width:70%;margin:auto;border-bottom:1px solid #8ca8b7;border-radius:0 0 8px 8px}.map-connections i{height:38px;width:1px;background:#8ca8b7}.map-engine{margin-top:24px;padding:22px 17px;background:var(--mint);color:var(--navy);border-radius:5px;display:flex;gap:17px;align-items:center;position:relative}.map-engine:before{content:"";position:absolute;left:50%;bottom:100%;height:24px;width:1px;background:#8ca8b7}.engine-icon{font-size:35px;line-height:1}.map-engine strong{display:block;font-size:16px;font-weight:600}.map-engine div>span{display:block;font-size:11px;margin-top:4px}.map-line{width:1px;height:28px;background:#8ca8b7;margin:auto}.map-output{display:flex;align-items:center;gap:15px;margin:0 25px;padding:16px 20px;background:#183b53;border:1px solid #718b9b;border-radius:4px;font-size:16px;line-height:1.45}.map-output>span:first-child{color:var(--mint);font-size:24px}.map-note{font-size:11px;text-align:center;color:#c7d9e3;margin-top:23px}
.section{padding-block:100px}.section-heading{display:grid;grid-template-columns:1fr 2.1fr;gap:50px;margin-bottom:55px}.section-label{font-size:14px;color:var(--muted);padding-top:8px}.section-heading>div>p{max-width:590px;color:var(--muted);margin-top:22px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.services article{padding-right:18px}.services svg{width:39px;height:39px;stroke:var(--blue);stroke-width:1.4;margin-bottom:24px}.services h3{font-size:23px;margin-bottom:14px}.services p{font-size:15px;color:var(--muted)}.services article>span{display:block;font-size:12px;margin-top:24px;color:var(--blue);font-weight:600}
.projects-section{padding-block:95px;background:var(--mist)}.project-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.project-filters button{border:1px solid #c5d2da;color:var(--muted);padding:9px 17px;border-radius:30px;background:transparent;font-size:13px;cursor:pointer}.project-filters button:hover{border-color:var(--navy)}.project-filters button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.project{padding:32px;background:white;border-radius:7px;min-height:340px;display:flex;flex-direction:column}.project-top{display:flex;justify-content:space-between;align-items:baseline;gap:15px;flex-wrap:wrap;margin-bottom:28px;font-size:11px;color:var(--muted)}.project-top>span+span{color:var(--blue);font-weight:600}.project h3{font-size:28px;line-height:1.25;margin-bottom:16px}.project>p{font-size:15px;color:var(--muted);max-width:480px;margin-bottom:25px}.project details{margin-top:auto;border-top:1px solid var(--line)}.project summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;list-style:none;font-size:13px;padding-top:18px;font-weight:600}.project summary::-webkit-details-marker{display:none}.project summary span{font-size:22px;font-weight:400;line-height:1}.project details[open] summary span{transform:rotate(45deg)}.project-detail{padding-top:17px;font-size:14px;color:var(--muted)}.project-detail a{display:inline-block;margin-top:16px;text-underline-offset:4px;color:var(--ink)}.featured{background:#dbe9ec}.featured details{border-color:#b9cfd4}.mini-flow{display:flex;align-items:center;gap:13px;margin-bottom:25px;font-size:11px;flex-wrap:wrap}.mini-flow span{border:1px solid #a8c0c7;padding:7px 13px;border-radius:3px}.mini-flow b{font-weight:400}.experimental{background:#e4ebef}.projects-note{font-size:12px;color:var(--muted);margin-top:26px;max-width:700px}
.profile-section{display:grid;grid-template-columns:1fr 1fr;gap:100px}.profile-statement .section-label{margin-bottom:25px}.profile-quote{font-family:var(--serif);font-size:25px;line-height:1.5;margin-top:28px;max-width:440px}.profile-qualification{font-size:12px;color:var(--muted);margin-top:25px}.profile-content>p{color:var(--muted);margin-bottom:22px}.experience{margin-top:40px}.experience h3{font-size:14px;letter-spacing:0;margin-bottom:18px}.experience>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line);font-size:13px}.experience strong{font-weight:600}.experience span{color:var(--muted);text-align:right}
.method-section{padding-block:75px;background:#f6f8f9}.method-heading{text-align:center}.method-heading .section-label{margin-bottom:17px}.method-heading>p:last-child{margin-top:18px;color:var(--muted)}.method{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;list-style:none;counter-reset:step;padding:0;margin:50px 0 0}.method li{counter-increment:step;border-top:1px solid #bdcbd4;padding-top:24px}.method li:before{content:"0" counter(step);color:var(--muted);font-size:13px;display:block;margin-bottom:16px}.method h3{font-size:22px;margin-bottom:12px}.method p{font-size:14px;color:var(--muted)}
.contact-section{background:var(--navy);color:white;padding-block:85px}.contact-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;align-items:center}.contact-section .section-label{color:#b9d1df;margin-bottom:23px}.contact-section h2{font-size:clamp(38px,4.2vw,58px)}.contact-layout>div>p:not(.section-label){max-width:440px;margin-top:25px;color:#c2d1db;font-size:15px}.contact-section .button{margin-top:30px}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-width:0}.contact-links>span{font-size:12px;color:#b9d1df}.contact-links>a{font-size:clamp(15px,1.7vw,23px);text-underline-offset:7px;overflow-wrap:anywhere;max-width:100%}.contact-links>a+a{font-size:16px}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:28px;font-size:12px;color:var(--muted)}.footer a{text-decoration:none}.footer>a:first-child{font-size:15px;color:var(--ink)}.footer>a>span{color:var(--muted);margin-left:5px}
/* Quattro servizi, con una larghezza di lettura adatta ai testi descrittivi. */
.hero-layout>*,.section-heading>*,.profile-section>*,.contact-layout>*,.project-grid>*{min-width:0}
.services{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 60px}
.hero h1{font-size:clamp(42px,4.4vw,60px);letter-spacing:-2px;line-height:1.08}
.hero-lead{font-size:20px;max-width:510px}
.hero-description{max-width:510px}
.project-detail ul{padding-left:20px}
.project-detail li+li{margin-top:8px}
/* Ritratto nel profilo: proporzioni originali e spazio riservato al caricamento. */
.profile-photo{display:block;width:100%;max-width:360px;height:auto;border-radius:7px;background:var(--mist)}
.profile-content .section-label{margin-bottom:20px}
.profile-content h2{margin-bottom:28px}
@media(min-width:1450px){.hero-layout{padding-block:105px}}
@media(max-width:1000px){.container{width:calc(100% - 56px)}.hero-layout{gap:40px}.process-map{padding:25px 20px}.map-engine{gap:10px;padding:18px 12px}.map-engine strong{font-size:14px}.map-output{margin-inline:10px}.actions{gap:18px}.services{gap:25px}.services h3{font-size:21px}.profile-section{gap:55px}.project-top{gap:6px}.nav-links{gap:22px}.contact-layout{gap:40px}}
@media(max-width:760px){html{scroll-padding-top:85px}.container{width:calc(100% - 40px)}.navigation{min-height:78px;flex-wrap:wrap;gap:0;padding-block:15px}.brand{font-size:19px}.brand img{width:24px;height:34px}.menu-toggle:not([hidden]){display:flex;align-items:center;gap:15px;padding:8px 12px;background:transparent;color:var(--navy);border:1px solid var(--line);border-radius:3px;font-size:13px}.menu-toggle span{font-size:19px}.nav-links{width:100%;padding-top:18px;gap:12px;flex-wrap:wrap;justify-content:space-between}.js .nav-links{display:none}.js .nav-links.open{display:flex}.nav-contact{padding:7px 10px}.nav-contact span{padding-left:5px}.hero-layout{grid-template-columns:1fr;padding-top:55px;padding-bottom:50px;gap:48px}.hero h1{font-size:clamp(48px,10vw,72px);letter-spacing:-2.5px}.hero-lead{font-size:21px}.hero-description{font-size:15px}.process-map{max-width:430px;width:calc(100% - 12px);margin:auto;padding:25px;transform:rotate(-1deg);box-shadow:8px 10px 0 #0e263c}.map-engine strong{font-size:16px}.map-output{margin-inline:15px}.hero-bottom{align-items:flex-start;font-size:11px}.hero-bottom>span{max-width:190px}.hero-bottom>a{max-width:125px;text-align:right}.section,.projects-section{padding-block:65px}.section-heading{grid-template-columns:1fr;gap:18px;margin-bottom:35px}.section-heading>div>p{font-size:15px}.section-label{padding-top:0}.services{grid-template-columns:1fr;gap:30px}.services article{display:grid;grid-template-columns:40px 1fr;column-gap:22px;padding:0}.services svg{grid-row:1/4;margin:0}.services h3{font-size:23px}.services p,.services article>span{grid-column:2}.services article>span{margin-top:13px}.project-grid{grid-template-columns:1fr;gap:16px}.project{padding:26px;min-height:0}.project h3{font-size:27px}.project-top{margin-bottom:22px}.project-filters{gap:7px}.project-filters button{padding:8px 12px;font-size:12px}.profile-section{grid-template-columns:1fr;gap:35px}.profile-quote{font-size:24px}.method-section{padding-block:60px}.method-heading{text-align:left}.method{grid-template-columns:1fr;gap:25px;margin-top:35px}.method li{display:grid;grid-template-columns:30px 1fr;column-gap:16px;padding-top:20px}.method li:before{grid-row:1/3;padding-top:4px}.method p{grid-column:2}.contact-section{padding-block:65px}.contact-layout{grid-template-columns:1fr;gap:45px}.contact-links{padding-top:25px;border-top:1px solid #3c5263;gap:15px}.contact-links>a{font-size:21px}.footer{flex-wrap:wrap;gap:15px}.footer>a:first-child{width:100%}}
@media(max-width:360px){.container{width:calc(100% - 32px)}.brand{font-size:17px}.process-map{padding:19px 14px}.map-inputs{gap:7px}.map-engine strong{font-size:14px}.project{padding:22px}.project h3{font-size:24px}.mini-flow{gap:7px}.mini-flow span{padding:6px 8px}}
@media(max-width:760px){.hero h1{font-size:clamp(36px,7.5vw,56px);letter-spacing:-1.4px}.hero-lead{font-size:19px}.contact-section h2{font-size:clamp(32px,7vw,46px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.header,.project-filters,.actions,.hero-bottom,.menu-toggle,.footer>a:last-child{display:none!important}.container{width:100%}.hero,.contact-section,.project,.projects-section,.method-section{background:white;color:black}.hero-layout,.section,.projects-section,.contact-section{padding-block:25px}.process-map{display:none}.hero-layout{display:block}.hero p,.contact-section p{color:#333!important}.project{break-inside:avoid}.section-heading{margin-bottom:20px}.project[hidden]{display:flex!important}}
