@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--blue:#1843ed;--ink:#17191d;--paper:#fafaf9;--muted:#5e626b;--line:#d9dce1}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #e75620;outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}.icon,.icon-up-right{display:inline-block;width:1em;height:1em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.skip{position:fixed;z-index:10;top:-80px;padding:14px;background:white}.skip:focus{top:8px}.header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;background:var(--paper)}.brand{display:inline-flex;align-items:flex-start;font-family:'Manrope',sans-serif;font-size:34px;font-weight:800;letter-spacing:-3px}.brand .icon{width:21px;height:21px;margin:5px 0 0 7px;letter-spacing:0;color:var(--blue)}nav{display:flex;gap:35px;font-size:14px;font-weight:500}nav a{display:inline-flex;align-items:center;gap:4px}nav a:last-child{border-bottom:1px solid;padding-bottom:5px}nav a:hover,.text-link:hover,footer>a:last-child:hover{color:var(--blue)}.hero{background:var(--blue);color:#fff;padding:34px 5.5% 20px;overflow:hidden}.eyebrow,.hero-foot,.section-label{font-size:11px;font-weight:600;letter-spacing:1.5px}.eyebrow{display:flex;justify-content:space-between}.hero h1{font-family:'Manrope',sans-serif;font-size:clamp(96px,16vw,236px);font-weight:500;letter-spacing:-.075em;line-height:.86;margin:52px 0 42px}.name-first{display:block}.name-row{display:flex;align-items:center;gap:.12em;margin-left:15%}.name-last{display:block}.asterisk{width:.72em;height:.72em;flex:0 0 auto;fill:none;stroke:#c8f568;stroke-width:7;stroke-linecap:round}.hero-bottom{display:flex;justify-content:space-between;align-items:start;margin:0 0 70px;padding-right:5%}.hero-bottom>p{font-size:clamp(25px,3vw,44px);line-height:1.2;letter-spacing:-1.5px;margin:12px 0}.intro{font-size:16px;line-height:1.65;margin:10px 0 24px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:16px 22px;border-radius:3px;font-size:14px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.light{color:var(--ink);background:white}.hero-foot{border-top:1px solid #ffffff40;display:flex;justify-content:space-between;padding-top:20px;font-size:9px;letter-spacing:1px}.hero-foot span:last-child{display:inline-flex;align-items:center;gap:5px}.hero-foot .icon{width:12px;height:12px}.section{padding:100px 5.5%;display:grid;grid-template-columns:1fr 2fr;gap:30px;scroll-margin-top:20px}.section-label{padding-top:14px}.section h2{font-family:'Manrope',sans-serif;font-size:clamp(36px,4.5vw,65px);line-height:1.1;font-weight:500;letter-spacing:-2.5px;margin:0 0 36px}.profile p{max-width:640px;font-size:17px;line-height:1.75;color:var(--muted)}.profile .lead{font-size:23px;line-height:1.5;color:var(--ink)}.text-link{display:inline-flex;align-items:center;gap:30px;border-bottom:1px solid var(--ink);padding:8px 0;font-size:14px;font-weight:500;margin-top:22px}.skills{background:#edeff2}.skill-row{display:flex;align-items:start;border-top:1px solid #c8ccd3;padding:30px 0;gap:25px}.number{font-size:11px;color:var(--muted);padding-top:7px}.skill-row>div{flex:1}.skill-row h3{font-family:'Manrope',sans-serif;font-size:25px;letter-spacing:-.8px;margin:0 0 10px;font-weight:600}.skill-row p{font-size:15px;line-height:1.6;color:var(--muted);max-width:390px;margin:0 0 20px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{font-size:11px;border:1px solid #c4c9d0;border-radius:30px;padding:6px 11px}.symbol{font-family:'Manrope',sans-serif;color:var(--blue);font-size:30px;min-width:65px;text-align:right;letter-spacing:-2px}.skill-row svg.symbol{width:30px;height:30px;min-width:30px;stroke-width:1.5}.education-intro{color:var(--muted);font-size:17px;line-height:1.65;max-width:500px;margin-bottom:35px}.course{display:flex;gap:35px;padding:24px 0;border-top:1px solid var(--line)}.course>span{font-size:12px;color:var(--muted);padding-top:5px}.course h3{font-size:18px;font-weight:500;letter-spacing:-.3px;margin:0 0 8px}.course p{font-size:13px;margin:0;color:var(--muted)}.contact{background:#c8f568;padding:45px 5.5% 60px}.contact-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.contact h2{font-family:'Manrope',sans-serif;font-size:clamp(48px,7.5vw,108px);font-weight:500;line-height:1.05;letter-spacing:-.06em;margin:45px 0}.contact em{font-family:Georgia,serif;font-weight:400}.contact-arrow{display:block;width:clamp(90px,14vw,200px);height:clamp(90px,14vw,200px);color:var(--ink);transition:transform .2s}.contact-arrow svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.contact-arrow:hover{transform:translate(6px,-6px)}.contact-bottom{display:flex;justify-content:space-between;align-items:end}.contact-bottom p{font-size:16px;line-height:1.5;margin:0}.dark{color:white;background:var(--ink)}footer{display:flex;align-items:center;justify-content:space-between;padding:30px 5.5%;font-size:12px}footer>span{color:var(--muted)}.footer-link{display:inline-flex;align-items:center;gap:4px}@media(min-width:1500px){.header,.hero,.section,.contact,footer{padding-left:max(5.5%,calc((100vw - 1320px)/2));padding-right:max(5.5%,calc((100vw - 1320px)/2))}.hero h1{font-size:236px}}@media(max-width:700px){.header{height:78px;padding-left:5%;padding-right:5%;overflow-x:auto}.brand{font-size:28px;letter-spacing:-2.5px}.brand .icon{width:18px;height:18px;margin-top:4px}nav{gap:14px;font-size:11px;white-space:nowrap}.hero{padding:24px 5% 20px}.eyebrow{font-size:8px;letter-spacing:.7px;gap:20px}.hero h1{font-size:clamp(72px,21vw,102px);line-height:.9;letter-spacing:-.075em;margin:50px 0 38px}.name-row{gap:.08em;margin-left:7%}.asterisk{width:.62em;height:.62em;stroke-width:8}.hero-bottom{display:block;margin-bottom:45px;padding:0}.hero-bottom>p{font-size:32px;margin-bottom:26px}.hero-bottom>div{margin-left:7%;max-width:330px}.intro{font-size:15px;line-height:1.6}.button{width:min(100%,330px)}.hero-foot{font-size:8px;letter-spacing:.5px;gap:12px}.hero-foot span:first-child{max-width:52%}.section{grid-template-columns:1fr;gap:25px;padding:58px 5%}.section-label{font-size:10px;padding:0}.section h2{font-size:42px;letter-spacing:-2px;margin-bottom:26px}.profile .lead{font-size:20px}.profile p{font-size:16px}.skill-row{gap:15px}.skill-row h3{font-size:22px}.skill-row p{font-size:14px}.symbol{font-size:25px;min-width:35px}.course{gap:14px}.course h3{font-size:16px}.contact{padding:34px 5% 40px}.contact h2{font-size:clamp(46px,12vw,66px);margin:34px 0}.contact-arrow{width:18vw;height:18vw;min-width:68px;min-height:68px}.contact-bottom{display:block}.contact-bottom p{font-size:15px;margin-bottom:25px}.contact-bottom p br{display:none}footer{gap:14px;padding:28px 5%;font-size:10px}footer .brand{font-size:27px}}@media(max-width:440px){nav{gap:10px;font-size:10px}.header .brand{font-size:25px}.header .brand .icon{width:16px;height:16px}.hero h1{font-size:20.5vw}.name-row{margin-left:5%}.asterisk{width:.58em;height:.58em}.contact-top{align-items:flex-start}.contact-arrow{margin-top:64px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.journey{background:#17191d;color:#fafaf9}.journey-lead{font-size:23px;line-height:1.5;max-width:650px;margin:0 0 40px}.journey-entry{border-top:1px solid #ffffff35;padding:28px 0}.step-label{color:#c8f568;font-size:10px;letter-spacing:1.3px;font-weight:600}.journey-entry h3{font-family:Manrope,sans-serif;font-size:28px;font-weight:500;letter-spacing:-.7px;margin:15px 0}.journey-entry p{font-size:16px;line-height:1.75;color:#c7cbd2;max-width:620px}.journey-entry .tags{margin-top:20px}.journey-entry .tags span{border-color:#ffffff40}.hero .intro{max-width:360px}@media(max-width:700px){nav{gap:13px;font-size:11px}.eyebrow{font-size:8px;letter-spacing:.5px;gap:20px}.journey-lead{font-size:20px}.journey-entry h3{font-size:25px}.journey-entry p{font-size:15px}}

.experience{margin-top:70px}.experience-title{font-family:Manrope,sans-serif;font-size:36px;letter-spacing:-1.5px;font-weight:500;margin:0 0 20px}.profile .experience-intro{font-size:17px}.job-group{margin-top:35px;border-top:1px solid var(--line);padding-top:25px}.job-group h4{font-size:25px;letter-spacing:-.7px;margin:0 0 26px;font-weight:600}.job{border-left:2px solid #dce1ed;padding:0 0 30px 24px;margin-left:4px}.job-date{font-size:10px;letter-spacing:1px;color:var(--blue);font-weight:600}.job h5{font-size:20px;font-weight:500;margin:9px 0}.profile .job p{font-size:14px;line-height:1.65;margin:6px 0}.study-now{margin-top:24px;padding:25px;background:#edeff2}.study-now h4{font-size:24px;margin:12px 0}.profile .study-now p{font-size:15px;margin-bottom:0}.course time{flex:0 0 78px;white-space:nowrap;font-size:10px;color:var(--muted);padding-top:6px}.older-certs summary{cursor:pointer;font-size:14px;font-weight:500;padding:24px 0;border-top:1px solid var(--line)}.older-certs summary span{float:right}.older-certs[open] summary span{transform:rotate(45deg)}.older-certs summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}@media(max-width:700px){.experience-title{font-size:30px}.course{gap:14px}.course time{flex-basis:65px}.job-group h4{font-size:23px}.hero .intro{font-size:14px}}

/* Hero generativo */
.hero-stage{position:relative;isolation:isolate;overflow:hidden;padding:52px 0 42px}.hero-stage .hero-visual{position:absolute;z-index:0;inset:0 -4% 0 auto;width:58%;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 34%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 34%,#000 100%)}.hero-visual canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .9s ease}.hero-visual.is-ready canvas{opacity:.82}.hero-fallback{position:absolute;right:16%;top:30%;width:min(15vw,205px);height:min(15vw,205px);opacity:.75;transform:rotate(-12deg);transition:opacity .35s ease}.hero-fallback i{position:absolute;left:8%;top:48%;width:84%;height:5px;border-radius:999px;background:#c8f568}.hero-fallback i:nth-child(2){transform:rotate(60deg)}.hero-fallback i:nth-child(3){transform:rotate(-60deg)}.hero-visual.is-ready .hero-fallback{opacity:0}.hero-stage h1{position:relative;z-index:2;margin:0}.hero-stage .name-first,.hero-stage .name-last{display:block;text-shadow:0 0 26px var(--blue)}.hero-stage::after{content:"";position:absolute;z-index:1;inset:0 32% 0 0;background:linear-gradient(90deg,var(--blue) 0%,#1843edf2 70%,transparent 100%);pointer-events:none}.hero-stage{animation:hero-enter .8s cubic-bezier(.2,.75,.2,1) both}.hero-bottom{position:relative;z-index:3;animation:hero-enter .8s .12s cubic-bezier(.2,.75,.2,1) both}@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media(max-width:700px){.hero-stage{padding:48px 0 34px}.hero-stage .hero-visual{inset:0 -18% 0 auto;width:86%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 42%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 42%,#000 100%)}.hero-visual.is-ready canvas{opacity:.7}.hero-fallback{width:32vw;height:32vw;right:15%;top:31%}.hero-stage::after{inset:0 28% 0 0;background:linear-gradient(90deg,var(--blue) 0%,#1843edf2 72%,transparent 100%)}.hero-stage h1{font-size:clamp(68px,19vw,94px);line-height:.86}.hero-stage .name-row{margin-left:4%}.hero-bottom>div{margin-left:0;max-width:360px}.hero-bottom>p{font-size:clamp(28px,8.5vw,34px);margin-bottom:22px}.hero .intro{font-size:15px}.hero .button{width:100%;max-width:360px}.hero-foot{margin-top:2px}}

@media(max-width:440px){.hero-stage{padding-top:44px}.hero-stage h1{font-size:19vw}.hero-stage .hero-visual{inset:0 -24% 0 auto;width:96%}.hero-bottom>div{margin-left:0}}

@media(prefers-reduced-motion:reduce){.hero-stage,.hero-bottom{animation:none}.hero-visual canvas{transition:none}}

/* Cosmic hero a tutta superficie */
.hero{position:relative;isolation:isolate;background:radial-gradient(circle at 82% 18%,#7038c9 0%,#312078 25%,transparent 50%),radial-gradient(circle at 14% 82%,#035b8f 0%,#092a69 27%,transparent 52%),linear-gradient(135deg,#020417 0%,#08184b 42%,#28105c 72%,#080419 100%)}.hero::before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 19% 38%,#03061a1c 0%,#03061a99 46%,transparent 70%),radial-gradient(ellipse at 73% 76%,transparent 0%,#07051a8c 68%,#07051ac7 100%)}.hero>.hero-visual{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none;-webkit-mask-image:none;mask-image:none}.hero>.hero-visual.is-ready canvas{opacity:.88}.hero>.hero-visual .hero-fallback{right:13%;top:22%;width:min(18vw,240px);height:min(18vw,240px);opacity:.58}.hero>.eyebrow,.hero>.hero-stage,.hero>.hero-bottom,.hero>.hero-foot{position:relative;z-index:2}.hero>.hero-stage{overflow:visible}.hero>.hero-stage::after{display:none}.hero h1 .name-first,.hero h1 .name-last{color:transparent;background:linear-gradient(105deg,#ffffff 5%,#dff7ff 38%,#d6ff68 68%,#ff92df 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 6px 30px #05031e66);text-shadow:none}.hero .eyebrow{color:#eaf5ff;text-shadow:0 1px 14px #020417}.hero-bottom>p{color:#f7fbff;text-shadow:0 2px 22px #020417}.hero .intro{color:#e7edff;text-shadow:0 1px 16px #020417}.hero .button.light{background:linear-gradient(110deg,#ffffff 0%,#edf8ff 54%,#ddff8b 100%);box-shadow:0 14px 45px #02041752,0 0 0 1px #ffffff5c}.hero .button.light:hover{background:linear-gradient(110deg,#ffffff 0%,#dff5ff 48%,#d3ff70 100%);box-shadow:0 18px 52px #02041770,0 0 22px #9eefff38}.hero .hero-foot{border-color:#b6eaff55;color:#eaf5ff}

@media(max-width:700px){.hero{background:radial-gradient(circle at 86% 20%,#6135b8 0%,#25186d 28%,transparent 52%),radial-gradient(circle at 12% 76%,#064f82 0%,#071f55 29%,transparent 55%),linear-gradient(155deg,#020417 0%,#0a194c 48%,#281053 77%,#070318 100%)}.hero::before{background:linear-gradient(90deg,#020417a3 0%,#02041724 58%,transparent 100%),linear-gradient(180deg,transparent 0%,#05051b42 52%,#05051bb5 100%)}.hero>.hero-visual.is-ready canvas{opacity:.76}.hero>.hero-visual .hero-fallback{right:8%;top:24%;width:38vw;height:38vw}.hero h1 .name-first,.hero h1 .name-last{background-image:linear-gradient(110deg,#ffffff 2%,#e5f7ff 48%,#d7ff71 77%,#ff9cdd 100%)}.hero .intro{color:#eef2ff}}

/* Identità viola e correzione del ritaglio tipografico */
:root{--blue:#7c3aed}a:focus-visible{outline-color:#8b5cf6}.hero-stage h1{line-height:.94}.hero h1 .name-first,.hero h1 .name-last{padding:.055em .045em .085em;margin:-.055em -.045em -.085em}.hero .button.light{box-shadow:0 14px 45px #02041752,0 0 0 1px #a78bfa70}.brand .icon,.job-date,.symbol{color:var(--blue)}

@media(max-width:700px){.hero-stage h1{line-height:.92}.hero h1 .name-first,.hero h1 .name-last{padding:.06em .05em .09em;margin:-.06em -.05em -.09em}}

/* Sistema cromatico definitivo */
:root{--violet:#6d28d9;--violet-bright:#7c3aed;--violet-pale:#f1eefa;--plum:#15102d;--lime:#d6ff68;--blue:var(--violet);--ink:#17131f;--paper:#f8f7fc;--muted:#625b6f;--line:#ddd7e7}body,.header{background:var(--paper)}.profile,.education{background:var(--paper)}.profile .section-label,.skills .section-label,.education .section-label{color:var(--violet)}.journey{background:var(--plum)}.journey .section-label,.journey .step-label{color:var(--lime)}.journey-entry{border-color:#ffffff2e}.journey-entry p{color:#d8d2e6}.journey-entry .tags span{border-color:#a78bfa66;color:#f8f7fc}.skills{background:var(--violet-pale)}.skill-row{border-color:#d5cce5}.tags span{border-color:#cec3df}.job{border-color:#d9cfee}.study-now{background:#eee9f7}.hero .button.light{background:var(--lime);color:var(--ink);box-shadow:0 14px 45px #02041752,0 0 0 1px #efffc866}.hero .button.light:hover{background:#e4ff9b;box-shadow:0 18px 52px #02041770,0 0 24px #d6ff6852}.contact{background:var(--violet);color:#fff}.contact .section-label{color:#e9ddff}.contact em,.contact-arrow{color:var(--lime)}.contact-bottom p{color:#f0eaff}.contact .button.dark{background:var(--lime);color:var(--ink);box-shadow:0 14px 36px #2e106580}.contact .button.dark:hover{background:#e4ff9b}.contact .button.dark:focus-visible{outline-color:#fff}footer{background:var(--plum);color:#fff}footer>span{color:#bdb4d0}footer .brand .icon{color:var(--lime)}footer>a:last-child:hover{color:#c4b5fd}
