@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--navy:#0b1a2a;--blue:#164cda;--ink:#122337;--muted:#5c6b7b;--line:#dce3e9;--paper:#f3f6f8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #529aff;outline-offset:5px}h1,h2,h3,.brand{font-family:'Space Grotesk',sans-serif;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(3rem,6.2vw,6.3rem);font-weight:500;margin:24px 0}h2{font-size:clamp(2rem,3.7vw,3.5rem);font-weight:500;margin:12px 0 24px}h3{font-size:1.6rem;font-weight:500}p{margin:0 0 22px}header{height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1320px;margin:auto;padding:0 48px}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:600;letter-spacing:-.04em}.mark{background:var(--blue);color:white;width:38px;height:38px;display:grid;place-items:center;font-size:19px}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:.19em;text-transform:uppercase;margin-top:6px}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:var(--blue)}.wrap{max-width:1320px;margin:auto;padding:0 48px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;color:var(--blue)}.hero{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.hero-inner{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:60px;padding-top:76px;padding-bottom:76px}.hero h1 span{color:var(--blue)}.intro{font-size:18px;max-width:510px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:#fff;padding:13px 22px;border:1px solid var(--blue);font-size:14px;font-weight:600;transition:.2s}.button:hover{background:#103aa8}.button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.board{background:var(--navy);color:#deeafa;padding:28px;border:1px solid #30445a;box-shadow:20px 24px 0 #e4eaf0;transform:rotate(-2deg)}.board-head{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.08em;border-bottom:1px solid #334354;padding-bottom:20px}.board-title{font-size:21px;font-family:'Space Grotesk';margin:22px 0 4px}.board-sub{font-size:12px;color:#a0b4ca}.flow{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;gap:0;margin:27px 0}.node{border:1px solid #476384;background:#122a43;padding:17px 8px;text-align:center;font-size:14px}.pipe{height:2px;background:#6197fa}.flow .down{grid-column:3;height:24px;width:2px;background:#6197fa;margin:auto}.flow .return{grid-column:1 / 4;height:20px;border:1px solid #6197fa;border-top:0;margin:0 20%}.data-row{display:flex;justify-content:space-between;border-top:1px solid #334354;padding:14px 0;font-size:13px}.data-row span{color:#9eb2c8}.diagram-note{font-size:12px;color:#95a9bf;margin:16px 0 0}.strip{display:flex;justify-content:space-between;gap:25px;padding-top:24px;padding-bottom:24px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line)}.section{padding-top:88px;padding-bottom:88px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:36px}.section-heading p{max-width:340px;color:var(--muted);font-size:15px}.project{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:46px 0;border-top:1px solid var(--line);align-items:center}.project-copy{max-width:470px}.number{font:13px 'Space Grotesk';color:var(--muted);margin-right:16px}.tag{font-size:12px;border:1px solid #c8d6e5;padding:5px 10px;color:#48627b;border-radius:2px}.project p{color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.tags span{font-size:12px;background:var(--paper);padding:5px 10px}.text-link{border-bottom:1px solid var(--blue);padding-bottom:5px;color:var(--blue);font-size:14px;font-weight:600}.panel{background:var(--paper);padding:30px;min-height:300px;border:1px solid var(--line)}.panel-top{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:16px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.metric{background:white;padding:14px;font-size:12px;color:var(--muted)}.metric strong{display:block;font:25px 'Space Grotesk';color:var(--ink);margin-top:6px}.bars{display:grid;gap:12px;font-size:12px}.bar{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:15px}.track{height:8px;background:#dce4ed}.track i{height:100%;display:block;background:var(--blue)}.caption{font-size:12px!important;color:var(--muted);margin:18px 0 0}.health{background:#0c2332;color:#dce9ed}.health .panel-top{color:#9bb4c4;border-color:#294151}.health svg{width:100%;height:auto;margin-top:18px}.legend{display:flex;gap:20px;font-size:12px}.legend span:before{content:'';display:inline-block;width:15px;height:3px;background:#68d6ca;vertical-align:middle;margin-right:6px}.legend span:last-child:before{background:#efb762}.health .caption{color:#9bb4c4}.about{background:var(--navy);color:white}.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.about .eyebrow{color:#8aafff}.about p{color:#b1bfd0}.credentials{display:flex;gap:25px;padding-top:22px;border-top:1px solid #334354;font-size:14px}.footer{display:flex;justify-content:space-between;gap:20px;padding-top:28px;padding-bottom:28px;color:var(--muted);font-size:12px}.detail-hero{padding:65px 0;background:var(--paper)}.detail-hero h1{font-size:clamp(2.8rem,5vw,4.7rem);max-width:900px}.detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.feature{padding:24px 0;border-top:1px solid var(--line)}.feature h3{font-size:22px;margin:0 0 12px}.feature p{color:var(--muted);margin:0}.back{font-size:14px;color:var(--blue)}.status-box{background:var(--paper);padding:28px;margin-top:28px}.status-box p{color:var(--muted);font-size:14px}.status-box h3{font-size:20px;margin-top:0}footer a:hover{text-decoration:underline}@media(max-width:850px){header{padding:0 24px;height:88px}nav{gap:18px}.wrap{padding-left:24px;padding-right:24px}.hero-inner{grid-template-columns:1fr;gap:42px;padding-top:45px;padding-bottom:48px}.board{max-width:600px;transform:none;box-shadow:10px 12px 0 #e4eaf0}.project,.about-inner,.detail-grid{grid-template-columns:1fr;gap:32px}.section{padding-top:55px;padding-bottom:55px}.section-heading{display:block}.strip{flex-wrap:wrap;gap:8px 24px}.project{padding:35px 0}.section-heading p{max-width:none}.footer{flex-wrap:wrap}}@media(max-width:440px){.brand{font-size:18px}.brand small{font-size:9px}nav{gap:14px;font-size:13px}.mark{width:30px;height:30px}.metric-grid{gap:6px}.metric{padding:10px}.metric strong{font-size:21px}.panel{padding:20px}.board{padding:20px}.credentials{flex-wrap:wrap;gap:15px}.hero h1{font-size:3.2rem}}

.gallery{border-bottom:1px solid var(--line)}.gallery-intro{max-width:880px;color:var(--muted)}.gallery-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:28px 0 20px}.gallery-controls label{font-size:14px;font-weight:600}.gallery-controls select,.gallery-controls button{font:inherit;font-size:14px;padding:12px 16px;background:white;border:1px solid #bacadb;color:var(--ink);border-radius:0}.gallery-controls select{min-width:250px;max-width:100%}.gallery-controls button{cursor:pointer}.gallery-controls button:disabled{opacity:.4;cursor:default}.gallery figure{margin:0}.gallery img{display:block;width:100%;height:auto;border:1px solid var(--line)}.gallery figcaption{display:flex;gap:12px;flex-wrap:wrap;padding:20px 0;font-size:14px}.gallery figcaption strong{width:100%;font-size:18px}.gallery figcaption span{flex:1;color:var(--muted)}.gallery figcaption a{color:var(--blue);text-decoration:underline}.project-image{margin:0}.project-image img{width:100%;height:auto;display:block;border:1px solid var(--line)}.project-image figcaption{font-size:12px;color:var(--muted);margin-top:10px}.cv-row{display:grid;grid-template-columns:160px 1fr;gap:30px;padding:26px 0;border-top:1px solid var(--line)}.cv-row h3{margin:0 0 10px;font-size:24px}.cv-row p{max-width:1200px;color:var(--muted);margin:5px 0}.cv-org{font-weight:600;color:var(--ink)!important}.experience{padding-top:0}.status-box ul{padding-left:20px}.status-box li{margin-bottom:10px}@media(max-width:650px){.cv-row{grid-template-columns:1fr;gap:12px}.gallery figcaption{display:block}.gallery figcaption>*{display:block;margin:10px 0}.gallery-controls select{width:100%}header{height:auto;min-height:100px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px}.gallery-controls label{width:100%}}
.report-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.report-flow span{font-size:14px;color:var(--blue)}.report-flow h3{font-size:22px;margin:8px 0}.report-flow p{font-size:15px;color:var(--muted)}@media(max-width:1200px){.report-flow{grid-template-columns:repeat(2,1fr)}}@media(max-width:450px){.report-flow{grid-template-columns:1fr}}
.hero-slide{transform:rotate(-2deg)}.chapter{padding-bottom:25px}.chapter-topics{font-size:14px;color:var(--blue)!important}.slide-entry{margin:0 0 70px}.slide-entry h2{font-size:clamp(1.8rem,3vw,2.7rem)}.slide-entry>p{max-width:850px;color:var(--muted)}.slide-entry figure{margin:24px 0}.slide-entry img{display:block;width:100%;height:auto}.slide-entry figcaption{display:flex;gap:30px;font-size:14px;color:var(--blue);padding-top:14px}.contact-emails{font-size:14px;margin-top:26px}.contact-emails a{text-decoration:underline}.footer{flex-wrap:wrap}nav{gap:20px}header{max-width:1440px}.brand small{letter-spacing:.06em}@media(max-width:1100px){header{height:auto;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}nav{flex-wrap:wrap;gap:12px 22px}.hero-slide{transform:none}}
.strip{flex-wrap:wrap}header{height:auto;min-height:100px;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}nav{flex-wrap:wrap}
/* Editorial portfolio and presentation viewer */
:root{--blue:#146c9c;--navy:#071c2d;--paper:#f4f6f7}header{border-bottom:1px solid var(--line);padding-top:23px;padding-bottom:23px}.brand .mark{background:var(--navy)}nav a{font-size:12px;letter-spacing:.02em}nav a:hover{color:#147d98}.hero{background:linear-gradient(120deg,#eef2f5,#fff);border-top:0}.hero-inner{gap:48px;padding-top:92px;padding-bottom:92px}.hero-slide{transform:none;box-shadow:0 22px 65px #08283c1a}.hero-slide img{border:0}.hero h1{font-size:clamp(3.2rem,6vw,6rem)}.strip{padding-top:27px;padding-bottom:27px}.strip a{font-size:12px;letter-spacing:.04em}.chapter{padding-top:72px}.chapter>.eyebrow{color:#6e7c89}.chapter>h2{font-size:clamp(2.3rem,4.2vw,4rem)}.chapter .project{gap:72px;padding-top:32px;padding-bottom:48px}.project-image img{border:0}.project-copy h3{font-size:clamp(1.6rem,2.7vw,2.3rem)}.project-image a{display:block;overflow:hidden}.project-image img{transition:transform .5s}.project-image a:hover img{transform:scale(1.025)}.detail-hero{padding:60px 0 45px;background:var(--navy);color:#fff}.detail-hero .back{color:#8acadb;display:inline-block;margin-bottom:25px}.detail-hero .eyebrow{color:#8acadb}.detail-hero .intro{max-width:760px;color:#b4c6d5;font-size:20px}.detail-hero .button.secondary{color:#fff}.detail-hero .contact-emails a{color:#bde3ed}.slide-chapter,.gallery{padding-top:45px;padding-bottom:45px}.showcase{background:#071c2d;color:#fff;box-shadow:0 18px 55px #09243c18;outline-offset:5px}.showcase-stage{position:relative;aspect-ratio:16/9;background:#071c2d;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.showcase-stage img{display:block;width:100%;height:100%;object-fit:contain;border:0}.showcase button{font-family:inherit;cursor:pointer}.showcase-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:52px;border:1px solid #ffffff55;background:#071c2dbb;color:white;font-size:24px;opacity:.35;transition:opacity .2s}.showcase:hover .showcase-arrow,.showcase:focus-within .showcase-arrow{opacity:1}.showcase-arrow.previous{left:12px}.showcase-arrow.next{right:12px}.showcase-bar{display:flex;align-items:center;gap:20px;padding:17px 25px;border-top:1px solid #ffffff22}.showcase-counter{font-size:12px;letter-spacing:.1em;white-space:nowrap;color:#a9c5d5}.showcase-dots{display:flex;gap:8px;flex-wrap:wrap;flex:1}.showcase-dots button{width:10px;height:10px;border:0;border-radius:50%;background:#526777;padding:0;outline-offset:4px}.showcase-dots button[aria-current=true]{background:#65cfe4;box-shadow:0 0 0 3px #65cfe420}.showcase-play,.showcase-expand{border:0;background:none;color:#c4dbe7;font-size:12px;padding:8px 0}.showcase-caption{padding:24px 28px 28px;background:#fff;color:var(--ink);border:1px solid var(--line)}.showcase-caption h3{font-size:24px;margin:0 0 12px}.showcase-caption p{margin:0;color:var(--muted);max-width:940px;font-size:15px}.slide-chapter>.gallery-intro{font-size:13px;line-height:1.6;margin:26px 0 0;color:#73808b}.chapter-next{padding-top:42px;padding-bottom:65px}.chapter-next>a{display:flex;justify-content:space-between;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:clamp(1.8rem,3vw,3rem);border-top:1px solid var(--line);padding-top:20px;margin-top:16px}.chapter-next>a:hover{color:var(--blue)}.showcase:fullscreen{overflow:auto;padding:20px;display:flex;flex-direction:column;justify-content:center}.showcase:fullscreen .showcase-stage{min-height:0;flex:1;aspect-ratio:auto}.showcase:fullscreen .showcase-stage img{max-height:calc(100vh - 210px)}.showcase:fullscreen .showcase-caption{background:var(--navy);color:#fff;border:0;padding:12px 24px}.showcase:fullscreen .showcase-caption p{color:#bbcfdd}.showcase:fullscreen .showcase-caption h3{font-size:20px}@media(max-width:700px){.showcase-bar{padding:12px;gap:12px;flex-wrap:wrap}.showcase-dots{min-width:80px}.showcase-play,.showcase-expand{font-size:11px}.showcase-arrow{width:32px;height:40px;opacity:.8}.showcase-arrow.previous{left:3px}.showcase-arrow.next{right:3px}.showcase-caption{padding:20px}.detail-hero .intro{font-size:17px}.chapter .project{gap:25px}.hero-inner{padding-top:50px;padding-bottom:50px}.showcase:fullscreen{padding:0}.showcase:fullscreen .showcase-stage img{max-height:65vh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-image img{transition:none}}

/* Editorial chapters */
.editorial-image{width:100%;height:auto;display:block;border-radius:3px}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:38px 0}.insight{border-top:2px solid #167ba4;padding:24px 0}.insight h3{font-size:25px}.insight p{color:var(--muted)}.research-note{background:var(--paper);padding:28px;margin-top:36px}.chapter-nav{display:flex;gap:20px;flex-wrap:wrap;margin-top:25px}.chapter-nav a{color:#126f98;border-bottom:1px solid}.editorial-lead{max-width:850px;font-size:20px;color:var(--muted)}@media(max-width:850px){.insight-grid{grid-template-columns:1fr;gap:8px}}header{height:auto;min-height:100px;padding-top:20px;padding-bottom:20px;flex-wrap:wrap}nav{flex-wrap:wrap;gap:14px 22px}

/* ECS development roadmap */
.roadmap-section{scroll-margin-top:24px}.roadmap-intro{max-width:730px;color:var(--muted);font-size:18px}.roadmap-list{list-style:none;margin:44px 0 30px;padding:0;position:relative}.roadmap-list:before{content:"";position:absolute;left:23px;top:24px;bottom:48px;width:2px;background:#d6e4ed}.roadmap-item{position:relative;display:grid;grid-template-columns:48px 1fr;gap:26px;padding:0 0 24px}.roadmap-marker{width:48px;height:48px;display:grid;place-items:center;background:#0d354a;color:white;border-radius:50%;font-size:14px;font-weight:700;z-index:1}.roadmap-item article{padding:24px 30px;background:#f4f7f9;border:1px solid #dce6ed;border-radius:6px}.roadmap-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.roadmap-status{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:5px 10px;border-radius:3px;background:#e1f1ed;color:#19654f}.roadmap-phase{font-size:12px;color:#586b7e}.roadmap-item h3{font-size:25px;margin:18px 0 12px;letter-spacing:-.025em}.roadmap-item p{margin:0;max-width:850px;color:var(--muted)}.roadmap-item.active article{background:#0e2c43;border-color:#0e2c43;color:white}.roadmap-item.active p,.roadmap-item.active .roadmap-phase{color:#c3d6e3}.roadmap-item.active .roadmap-marker{background:#087fa2}.roadmap-item.active .roadmap-status{background:#bceef4;color:#124c61}.roadmap-item.planned .roadmap-marker{background:white;border:2px solid #b8cbd8;color:#5c7180}.roadmap-item.planned .roadmap-status{background:#e5eaf0;color:#566778}.roadmap-note{font-size:13px;color:var(--muted);max-width:870px;margin-bottom:26px}@media(max-width:600px){.roadmap-item{grid-template-columns:36px 1fr;gap:14px}.roadmap-marker{width:36px;height:36px;font-size:11px}.roadmap-list:before{left:17px}.roadmap-item article{padding:20px 17px}.roadmap-item h3{font-size:22px}.roadmap-phase{line-height:1.6}.roadmap-row{gap:10px}}

.industry-updates{margin-top:70px}.company-case{padding:60px 0;border-bottom:1px solid var(--line);scroll-margin-top:24px}.company-case h2{font-size:clamp(2rem,3.5vw,3.2rem)}.case-lead{max-width:820px;font-size:20px;color:var(--muted)}.company-case .insight-grid h3{font-size:23px}.company-case .caption a{text-decoration:underline;text-underline-offset:3px}.company-case .research-note p{margin:12px 0 0}

/* Full-roadmap progress estimate, 7 October 2026 */
.ecs-progress{margin:32px 0 42px;padding:30px;border:1px solid var(--line);background:#f4f7f9;border-radius:6px}.ecs-progress-head{display:flex;justify-content:space-between;align-items:center;gap:24px}.ecs-progress h3{font-size:clamp(23px,3vw,32px);margin:10px 0 20px}.ecs-progress-value{font-size:clamp(42px,6vw,64px);line-height:1;color:var(--navy);white-space:nowrap}.ecs-progress-track{height:12px;background:#dae6ed;border-radius:8px;overflow:hidden}.ecs-progress-track span{display:block;width:50%;height:100%;background:#167ba4}.ecs-progress>p{color:var(--muted)}.ecs-progress-metrics{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:24px;margin:28px 0}.ecs-progress-metrics>div{border-top:1px solid #d4e0e8;padding-top:18px}.ecs-progress-metrics dt{font-size:13px;color:var(--muted)}.ecs-progress-metrics dd{margin:8px 0 0;font-weight:600;font-size:30px;color:var(--ink)}.ecs-progress-metrics dd.ecs-progress-pending{font-size:18px;line-height:1.5}.ecs-progress .ecs-progress-note{font-size:12px;line-height:1.7}.ecs-progress-status{border-top:1px solid #d4e0e8;padding-top:20px;font-size:14px;line-height:1.7}@media(max-width:600px){.ecs-progress{padding:22px 18px}.ecs-progress-head{align-items:flex-start;gap:14px}.ecs-progress-metrics{grid-template-columns:1fr;gap:16px}.ecs-progress h3{font-size:23px}.ecs-progress .eyebrow{font-size:10px}}

/* Meet Francesco: personal profile */
.personal-about{position:relative;isolation:isolate;background:radial-gradient(ellipse at 0% 10%,#cceaf080,transparent 55%),linear-gradient(135deg,#f1f6f9 0%,#fff 60%,#eaf3f7 100%);color:var(--ink);overflow:hidden}.personal-about:before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(#167ba406 1px,transparent 1px),linear-gradient(90deg,#167ba406 1px,transparent 1px);background-size:64px 64px;pointer-events:none}.personal-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:start}.personal-photo{margin:8px 0 0;position:relative;border-radius:12px;overflow:hidden;box-shadow:0 24px 65px #0e2c431a;border:6px solid #fff}.personal-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 68%}.personal-photo figcaption{padding:22px 24px;background:#0e2c43;color:#fff;font-size:20px;font-weight:600}.personal-photo figcaption span{display:block;font-size:12px;letter-spacing:.025em;color:#bfdae6;margin-top:8px;font-weight:400}.personal-copy h2{margin-bottom:15px}.personal-copy .personal-lead{font-size:clamp(22px,2.6vw,32px);line-height:1.35;color:#167ba4;margin:0 0 24px}.personal-copy>p,.personal-beyond p{color:var(--muted);line-height:1.8;font-size:16px}.personal-copy .credentials{margin-bottom:24px}.personal-beyond{border-top:1px solid #ccdde6;margin-top:28px;padding-top:24px}.personal-beyond h3{font-size:25px;margin:0 0 14px}.personal-interests{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:22px 0}.personal-interests li{border:1px solid #c8dfe7;background:#ffffffaa;color:#126b8c;border-radius:24px;padding:7px 14px;font-size:12px}.personal-copy .actions{margin-top:28px;flex-wrap:wrap}@media(max-width:1200px){.personal-grid{grid-template-columns:1fr;gap:36px}.personal-photo{width:min(100%,420px);margin:0 auto}.personal-copy .personal-lead{font-size:25px}}

/* Professional background and personal interests */
.personal-grid{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr)}.professional-photo{width:min(100%,290px);justify-self:center}.professional-photo img{aspect-ratio:190/284;object-fit:contain;background:#d6d6d6}.professional-photo figcaption{font-size:17px;padding:18px}.personal-life{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:clamp(30px,5vw,80px);align-items:center;padding-bottom:85px}.personal-life .personal-beyond{margin:0;padding:25px 0;border-top:1px solid #ccdde6}.outdoor-photo{width:min(100%,330px);justify-self:center}.background-context{padding-top:45px;padding-bottom:15px}.background-context h2{font-size:clamp(26px,3vw,38px);margin:14px 0}.background-context p{max-width:950px;line-height:1.8;color:var(--muted);font-size:18px}@media(max-width:1200px){.personal-grid,.personal-life{grid-template-columns:1fr}.personal-life{gap:28px;padding-bottom:55px}.professional-photo{width:min(100%,250px)}.outdoor-photo{width:min(100%,330px)}}

/* Refined profile and professional chapter introductions */
.professional-photo{width:min(100%,370px)}.professional-photo img{aspect-ratio:2/3;object-fit:cover}.background-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:36px 0}.background-capabilities article{padding:24px 0;border-top:2px solid #167ba4}.background-capabilities h3{font-size:23px;line-height:1.3;margin:16px 0}.background-capabilities p{font-size:16px;line-height:1.75}.background-context{padding-bottom:25px}@media(max-width:1200px){.background-capabilities{grid-template-columns:1fr;gap:8px}.professional-photo{width:min(100%,320px)}}

/* New formal portrait supplied 7 October */
.professional-photo img{aspect-ratio:1/1;object-fit:contain;object-position:center}


/* Portfolio navigation and AFC chapter — October 2026 */
header {height:auto; max-width:1440px; padding:24px 48px 20px; gap:20px; flex-wrap:wrap; border-bottom:1px solid #dce3e9;}
header .brand {flex-shrink:0;}
header nav[aria-label="Main navigation"] {display:flex; flex-basis:100%; flex-wrap:wrap; gap:8px; padding:12px; background:#eef3f7; border:1px solid #dce5ed; border-radius:12px;}
header nav[aria-label="Main navigation"] a {display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 15px; font-size:14px; line-height:1.3; font-weight:700; color:#17344f; background:#fff; border:1px solid #c4d2de; border-radius:7px; box-shadow:0 2px 3px #102b4310; transition:background .15s,color .15s,border-color .15s;}
header nav[aria-label="Main navigation"] a:hover,header nav[aria-label="Main navigation"] a[aria-current="page"] {background:#12344d; color:#fff; border-color:#12344d;}
header nav[aria-label="Main navigation"] a:focus-visible {outline:3px solid #007d9e; outline-offset:3px;}
.finance-feature {display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.finance-feature figure {margin:0;}
.finance-feature img {width:100%; display:block; border-radius:8px;}
.finance-feature figcaption {color:var(--muted); font-size:12px; padding:10px 0;}
.finance-steps {display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:38px;}
.finance-steps article {border-top:3px solid #167899; padding-top:22px;}
.finance-steps article>span {font-size:32px; color:#167899; font-family:'Space Grotesk',sans-serif;}
.finance-steps h3 {font-size:23px;}
.finance-steps p {color:var(--muted);}
.finance-steps strong {font-size:14px;}
.finance-research {background:#f2f6f8; border-top:1px solid var(--line);}
@media(max-width:1200px) {header {padding:20px 22px;}header nav[aria-label="Main navigation"] {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px;}header nav[aria-label="Main navigation"] a {font-size:12px; padding:10px 8px; text-align:center;}.finance-feature {grid-template-columns:1fr;gap:26px;}.finance-steps {grid-template-columns:1fr 1fr;}}
@media(max-width:480px) {.finance-steps {grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto;}header nav a{transition:none;}}

/* Compact mobile navigation; full navigation stays available without JavaScript. */
.navigation-toggle {display:none;}
@media(max-width:1200px) {
 header {padding:18px 22px; gap:12px;}
 header .brand {min-width:0; flex-shrink:1; font-size:21px;}
 header .brand small {font-size:9px; line-height:1.5; letter-spacing:.08em;}
 header.navigation-ready .navigation-toggle {display:inline-flex; align-items:center; justify-content:center; margin-left:auto; min-height:44px; padding:8px 16px; border:1px solid #b7cbd7; border-radius:22px; color:#12344d; background:#f0f5f8; font:600 14px 'DM Sans',sans-serif; cursor:pointer;}
 header.navigation-ready nav[aria-label="Main navigation"] {display:none;}
 header.navigation-ready.navigation-open nav[aria-label="Main navigation"] {display:grid;}
 header nav[aria-label="Main navigation"] {width:100%; margin:0; padding:4px 0; border:0; border-radius:0; background:transparent; gap:0 16px;}
 header nav[aria-label="Main navigation"] a {justify-content:flex-start; text-align:left; min-height:44px; padding:10px 4px; font-size:13px; font-weight:500; border:0; border-bottom:1px solid #dce5ed; border-radius:0; box-shadow:none; background:transparent;}
 header nav[aria-label="Main navigation"] a:hover, header nav[aria-label="Main navigation"] a[aria-current="page"] {background:#eaf3f7; color:#12344d; border-color:#167b9c;}
}

/* Balanced typography — 8 October 2026 */
header .brand{font-size:26px;line-height:1.15}
header .brand>span:last-child{min-width:0}
header .brand .mark{width:44px;height:44px;flex:0 0 44px;font-size:22px}
header .brand small{font-size:11px;line-height:1.5;letter-spacing:.06em}
.hero h1{font-size:clamp(2.6rem,4.5vw,4.5rem);line-height:1.12}
.detail-hero h1{font-size:clamp(2.25rem,4.25vw,4rem);line-height:1.15}
.tool-page .detail-hero h1{font-size:clamp(2.15rem,4vw,3.75rem)}
h2{font-size:clamp(1.8rem,3.15vw,3rem)}
.chapter>h2{font-size:clamp(2rem,3.57vw,3.4rem)}
.company-case h2{font-size:clamp(1.8rem,3vw,2.75rem)}
@media(max-width:1200px){
 header .brand{font-size:23px;max-width:100%}
 header .brand .mark{width:36px;height:36px;flex-basis:36px;font-size:20px}
 header .brand small{font-size:10px;letter-spacing:.04em}
 .hero h1{font-size:clamp(2.5rem,8vw,3.25rem)}
 .detail-hero h1,.tool-page .detail-hero h1{font-size:clamp(2rem,6vw,3rem);overflow-wrap:break-word}
 .chapter>h2{font-size:clamp(1.9rem,6vw,2.65rem)}
}
@media(max-width:440px){.hero h1{font-size:clamp(2.3rem,10.5vw,2.75rem)}}

/* Desktop navigation: one row; mobile retains the accessible menu. */
@media(min-width:1201px){header nav[aria-label="Main navigation"]{flex-wrap:nowrap;gap:6px;padding:10px;width:100%;min-width:0}header nav[aria-label="Main navigation"] a{flex:1 1 auto;white-space:nowrap;min-width:0;padding:10px 9px;font-size:13px;letter-spacing:0}}
@media(min-width:1201px) and (max-width:1100px){header{padding-left:20px;padding-right:20px}header nav[aria-label="Main navigation"] a{font-size:11px;padding:10px 5px}header nav[aria-label="Main navigation"]{gap:4px;padding:6px}}


/* IT/EN visual parity: consistent spacing, full-width assets, responsive editorial rhythm */
html[lang="it"] main > section.wrap.section {padding-top:clamp(36px,5vw,72px);padding-bottom:clamp(36px,5vw,72px)}
html[lang="it"] main > section.wrap.section + section.wrap.section {border-top:1px solid var(--line)}
html[lang="it"] main > section.wrap.section:not(.it-insights) > p,
html[lang="it"] main > section.wrap.section:not(.it-insights) > div > p {max-width:900px}
html[lang="it"] main > section.wrap.section > h2 {margin-bottom:22px}
html[lang="it"] .it-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:28px}
html[lang="it"] .it-visual-grid figure{margin:0;border:1px solid var(--line);background:var(--paper);min-width:0;overflow:hidden}
html[lang="it"] .it-visual-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain;background:#eaf0f4}
html[lang="it"] .it-visual-grid figcaption{padding:15px 18px;font-size:13px;color:var(--muted)}
html[lang="it"] .it-visual-grid a{display:block}
html[lang="it"] .it-visual-grid a:hover img{opacity:.93}
html[lang="it"] .it-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:32px 0 0}
html[lang="it"] .it-overview article{border-top:2px solid var(--blue);padding-top:20px}
html[lang="it"] .it-overview h3{font-size:21px;margin:8px 0 13px}
html[lang="it"] .it-overview p{color:var(--muted);font-size:15px}
html[lang="it"] .it-visual-heading{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:12px}
html[lang="it"] .it-visual-intro{color:var(--muted);max-width:850px}
html[lang="it"] .it-link-row{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0}
html[lang="it"] .it-link-row a{display:inline-flex;border:1px solid var(--line);padding:12px 18px;color:var(--blue);font-size:14px}
html[lang="it"] .it-link-row a:hover{background:var(--paper)}
@media(max-width:720px){html[lang="it"] .it-visual-grid,html[lang="it"] .it-overview{grid-template-columns:1fr}html[lang="it"] main > section.wrap.section{padding-top:38px;padding-bottom:38px}html[lang="it"] .it-visual-grid{gap:16px}}

/* V0.9.3 — responsive visual balance across English and Italian pages */
.it-visual-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:24px!important;align-items:start}
.it-visual-grid figure{max-width:none!important;width:100%!important;margin:0}
.it-visual-grid figure img{width:100%;height:auto;object-fit:contain}
.it-showcase{padding-top:clamp(24px,3vw,40px)!important;padding-bottom:clamp(28px,3vw,45px)!important}
.it-visual-intro{max-width:1000px!important}
.background-context{padding-top:clamp(32px,4vw,58px)}
@media(max-width:760px){.it-visual-grid{grid-template-columns:1fr!important}.background-capabilities{gap:16px}}

/* V0.9.4 — consistent compact navigation and editorial image sizing */
@media (min-width:1201px){
 header nav[aria-label="Main navigation"]{gap:5px;padding:8px 9px}
 header nav[aria-label="Main navigation"] a{font-size:clamp(10px,.79vw,12px);padding:9px 7px;letter-spacing:0;line-height:1.25}
}
@media (max-width:1200px){header nav[aria-label="Main navigation"] a{font-size:12px;line-height:1.3;overflow-wrap:anywhere}}
/* Home: provide more of the available width to the original photographs, without cropping */
@media (min-width:851px){
 body:has(.project .project-image) .project{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(22px,3.5vw,48px)}
 body:has(.project .project-image) .project .project-copy{max-width:100%}
 body:has(.project .project-image) .project-image{width:100%;max-width:none}
 body:has(.project .project-image) .project-image img{width:100%;height:auto;object-fit:contain}
}
/* Consistent chapter headings: prevent oversized titles across both languages */
.chapter>h2,.chapter h2{font-size:clamp(1.95rem,3.1vw,3rem);line-height:1.16}
.detail-hero h1{font-size:clamp(2.45rem,4.25vw,4rem);line-height:1.12}
@media(max-width:600px){.chapter>h2,.chapter h2{font-size:clamp(1.75rem,7vw,2.35rem)}.detail-hero h1{font-size:clamp(2.1rem,9vw,3rem)}}

/* V0.9.5 — System Testing: compact editorial rhythm, same layout in both languages */
body:has(.background-context) .background-context{padding-top:32px;padding-bottom:4px}
body:has(.background-context) .background-context p{line-height:1.65;margin:0 0 13px;font-size:clamp(15px,1.15vw,17px)}
body:has(.background-context) .background-capabilities{margin:19px 0 12px;gap:22px}
body:has(.background-context) .background-capabilities article{padding:14px 0 6px}
body:has(.background-context) .background-capabilities h3{font-size:clamp(18px,1.6vw,22px);margin:9px 0}
body:has(.background-context) .background-capabilities p{font-size:15px;line-height:1.6}
body:has(.background-context) .slide-chapter{padding-top:18px;padding-bottom:14px}
body:has(.background-context) .chapter-next{padding-top:24px;padding-bottom:34px}
body:has(.background-context) .chapter-next>a{font-size:clamp(22px,2.2vw,32px);margin-top:9px;padding-top:14px}
body:has(.background-context) .detail-hero{padding-top:38px;padding-bottom:35px}
body:has(.background-context) .detail-hero h1{font-size:clamp(34px,4vw,58px)}
@media(max-width:750px){body:has(.background-context) .background-capabilities{gap:6px}body:has(.background-context) .slide-chapter{padding-top:12px}}


/* V0.9.8 — bilingual typography and spacing refinement. No JS or image assets changed. */
:root { --editorial-measure: 920px; }
.detail-hero { padding-top: 46px; padding-bottom: 48px; }
.detail-hero h1 { line-height:1.09; letter-spacing:-.03em; margin-top:20px; margin-bottom:15px; }
.detail-hero .editorial-lead { max-width:850px; line-height:1.48; margin-top:14px; }
section.wrap.section { padding-top:56px; padding-bottom:56px; }
section.wrap.background-context { padding-top:48px; padding-bottom:35px; }
.background-context h2 { margin:10px 0 16px; }
.background-context p { max-width:var(--editorial-measure); line-height:1.65; margin:0 0 15px; }
.background-capabilities { margin:28px 0 8px; gap:25px; }
.background-capabilities article { padding-top:17px; }
.background-capabilities h3 { margin:12px 0 9px; font-size:clamp(18px,1.5vw,22px); }
.background-capabilities article p { font-size:15.5px; line-height:1.64; }
.finance-feature { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap:40px; }
.finance-feature img { max-height:450px; object-fit:cover; }
.finance-feature h2 { margin-bottom:16px; }
.finance-steps { gap:18px; margin-top:27px; }
.finance-steps article { padding-top:17px; }
.finance-steps h3 { font-size:clamp(18px,1.6vw,22px); margin:9px 0 11px; }
.finance-research .wrap.section { padding-top:52px; padding-bottom:52px; }
.finance-research .background-capabilities { margin-bottom:5px; }
@media (max-width:850px) {
 .detail-hero { padding-top:34px; padding-bottom:38px; }
 section.wrap.section { padding-top:38px; padding-bottom:40px; }
 section.wrap.background-context { padding-top:35px; padding-bottom:24px; }
 .finance-feature { grid-template-columns:1fr; gap:23px; }
 .finance-steps { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
 .detail-hero h1 { font-size:clamp(2.1rem,7vw,3.25rem); }
 .background-capabilities { grid-template-columns:1fr; gap:6px; }
 .finance-steps { grid-template-columns:1fr; }
 .background-context p { font-size:16px; }
}

/* V0.9.8: refinements for bilingual detail pages at desktop and mobile sizes. */
@media(min-width:851px) {
 .detail-hero .wrap, .background-context { scroll-margin-top: 24px; }
 .finance-feature figure { min-width:0; }
}
@media(max-width:760px){
 .finance-steps article { min-width:0; }
 .finance-feature img { height:auto; max-height:none; }
 .finance-steps strong { display:block; }
}

/* V0.9.12: keep the responsive navigation truly collapsible.
   Previous page-level 'header nav { display:flex!important }' overrode the
   mobile toggle's display:none state. This more-specific rule restores it. */
@media (max-width: 1200px) {
  header.navigation-ready:not(.navigation-open) nav[aria-label="Main navigation"] {
    display: none !important;
  }
  header.navigation-ready.navigation-open nav[aria-label="Main navigation"] {
    display: grid !important;
  }
}
