@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#020913;--panel:#061523;--panel2:#081b2b;--text:#f5f8fc;--muted:#c3d0dc;--subtle:#8297a9;--line:rgba(0,204,255,.43);--line-soft:rgba(0,204,255,.18);--cyan:#08d9ff;--green:#00f0b5;--max:1440px;--nav-h:74px;--shadow:0 20px 60px rgba(0,0,0,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;line-height:1.6;font-size:15px}body.light{--bg:#edf4f8;--panel:#fff;--panel2:#e4f0f5;--text:#071726;--muted:#304659;--subtle:#5d7182;--line:rgba(0,126,167,.42);--line-soft:rgba(0,126,167,.18);--shadow:0 20px 60px rgba(8,35,53,.12)}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{height:var(--nav-h);position:sticky;top:0;z-index:50;background:rgba(1,9,18,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft)}body.light .site-header{background:rgba(245,250,253,.94)}.nav-wrap{height:100%;max-width:var(--max);margin:auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:700 17px/1 'Manrope',sans-serif;letter-spacing:.01em;white-space:nowrap}.nav{display:flex;align-items:center;gap:clamp(14px,2vw,32px)}.nav a{font-size:11px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--muted);padding:28px 0 24px;position:relative;white-space:nowrap}.nav a:hover,.nav a.active{color:var(--text)}.nav a.active:after{content:'';position:absolute;bottom:15px;left:0;right:0;height:2px;background:var(--green);box-shadow:0 0 12px var(--green)}.theme-toggle,.menu-toggle{background:none;border:0;color:var(--text);cursor:pointer;font-size:19px;padding:6px}.menu-toggle{display:none}.page-shell{max-width:var(--max);margin:0 auto;padding:0 24px 26px}.frame{border:1px solid var(--line);position:relative;overflow:hidden;min-height:calc(100vh - var(--nav-h) - 48px);background:#03101c;isolation:isolate}.hero{position:relative;display:grid;align-items:center;min-height:calc(100vh - var(--nav-h) - 48px);overflow:hidden;background-size:cover;background-position:center}.hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(1,9,18,.97) 0%,rgba(1,12,23,.82) 37%,rgba(1,12,23,.28) 70%,rgba(1,12,23,.05) 100%)}.hero:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(1,8,16,.6),transparent 22%,transparent 78%,rgba(1,8,16,.12));z-index:-1}.home-hero{background-image:url('images/hero-network.jpg');background-position:center}.home-hero:before{background:linear-gradient(90deg,rgba(1,9,18,.96) 0%,rgba(1,9,18,.75) 35%,rgba(1,9,18,.12) 75%,rgba(1,9,18,.2) 100%)}.hero-copy{position:relative;z-index:2;padding:clamp(34px,6vw,84px);max-width:620px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--green);margin:0 0 13px}.hero h1{font:800 clamp(38px,4.3vw,64px)/1.05 'Manrope',sans-serif;letter-spacing:-.045em;margin:0 0 18px;max-width:650px}.hero h1 .accent{color:var(--green)}.hero h2{font:700 clamp(24px,2.4vw,36px)/1.18 'Manrope',sans-serif;letter-spacing:-.025em;margin:0 0 18px}.hero p{color:#e0e8ef;max-width:500px;margin:0 0 22px;font-size:15px;line-height:1.65}.hero .lead{font-size:17px;color:#fff}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(233,248,255,.8);border-radius:999px;padding:12px 20px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;transition:transform .2s,box-shadow .2s,background .2s;min-height:42px}.btn:hover{transform:translateY(-2px);box-shadow:0 7px 24px rgba(0,240,181,.16)}.btn.primary{background:var(--green);color:#00121b;border-color:var(--green)}.btn.secondary{background:rgba(0,10,20,.4);color:#fff}.social-row{display:flex;flex-wrap:wrap;gap:22px;margin-top:28px}.social-row a{font-size:12px;color:#f3f7fb;display:flex;align-items:center;gap:8px}.social-row a:hover{color:var(--green)}.hero-home-bottom{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--cyan),transparent 75%)}.feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 30px 30px;position:absolute;bottom:0;left:0;right:0;z-index:4}.feature{min-height:96px;padding:16px 18px;border:1px solid var(--line);background:rgba(1,13,24,.82);backdrop-filter:blur(10px);border-radius:8px}.feature .icon{font-size:23px;color:var(--cyan);line-height:1;margin-bottom:8px}.feature strong{display:block;font:700 14px/1.3 'Manrope',sans-serif}.feature span{display:block;color:#bcd0dd;font-size:12px;line-height:1.4;margin-top:2px}.profile-hero{background-image:url('images/datacenter.jpg');background-position:center}.profile-hero:before{background:linear-gradient(90deg,rgba(1,9,18,.97) 0%,rgba(1,9,18,.84) 38%,rgba(1,9,18,.22) 72%,rgba(1,9,18,.2) 100%)}.profile-hero .hero-copy{padding-top:60px;padding-bottom:180px}.profile-hero .hero h2{max-width:550px}.profile-hero .hero-copy p{font-size:14px}.book-hero{background-position:center;background-size:cover}.romitorio-hero{background-image:url('images/romitorio-ambientazione.jpg');background-position:center 54%}.romitorio-hero:before{background:linear-gradient(90deg,rgba(1,10,17,.89) 0%,rgba(1,10,17,.67) 36%,rgba(1,10,17,.14) 75%,rgba(1,10,17,.1) 100%)}.orbita-hero{background-image:url('images/ultima-orbita-spazio.jpg');background-position:center}.orbita-hero:before{background:linear-gradient(90deg,rgba(1,9,18,.95) 0%,rgba(1,9,18,.7) 39%,rgba(1,9,18,.06) 78%,rgba(1,9,18,.08) 100%)}.scacchi-hero{background-image:url('images/scacchi-darme-battlefield.jpg');background-position:center}.scacchi-hero:before{background:linear-gradient(90deg,rgba(1,9,18,.93) 0%,rgba(1,9,18,.72) 39%,rgba(1,9,18,.12) 75%,rgba(1,9,18,.1) 100%)}.cv-hero{background-image:url('images/datacenter.jpg');background-position:center}.cv-hero:before{background:linear-gradient(90deg,rgba(1,9,18,.96) 0%,rgba(1,9,18,.79) 42%,rgba(1,9,18,.16) 80%,rgba(1,9,18,.1) 100%)}.book-cover{position:absolute;z-index:3;right:7%;bottom:7%;width:clamp(170px,20vw,290px);max-height:70%;object-fit:contain;filter:drop-shadow(0 20px 22px rgba(0,0,0,.55));transform:perspective(900px) rotateY(-5deg);transition:transform .3s}.book-cover:hover{transform:perspective(900px) rotateY(0deg) translateY(-4px)}.book-hero .hero-copy{padding-bottom:80px;max-width:620px}.book-hero h1{font-size:clamp(34px,3.2vw,48px)}.book-hero p{font-size:14px}.hero-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;color:#d5e2ed;font-size:12px}.hero-meta span:before{content:'✦';color:var(--green);margin-right:7px}.below-section{padding:58px clamp(24px,5vw,72px);background:linear-gradient(135deg,#04111e,#061a2a);border-top:1px solid var(--line-soft)}.below-section h2{font:800 clamp(25px,3vw,38px)/1.15 'Manrope',sans-serif;margin:0 0 15px;letter-spacing:-.03em}.below-section p{max-width:820px;color:var(--muted)}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.content-card{border:1px solid var(--line-soft);background:rgba(3,16,28,.75);border-radius:8px;padding:22px;transition:border-color .2s,transform .2s}.content-card:hover{border-color:var(--cyan);transform:translateY(-3px)}.content-card h3{font:700 18px/1.25 'Manrope',sans-serif;margin:0 0 8px}.content-card p{font-size:13px;margin:0 0 15px}.text-link{color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;position:absolute;left:32px;right:32px;bottom:28px;z-index:3}.skill-card{border:1px solid var(--line);border-radius:8px;background:rgba(1,12,22,.88);backdrop-filter:blur(9px);padding:15px 18px;min-height:102px}.skill-card .icon{color:var(--cyan);font-size:25px;line-height:1.1;margin-bottom:7px}.skill-card strong{display:block;font:700 13px/1.3 'Manrope',sans-serif}.skill-card span{display:block;color:#b6c8d5;font-size:11px;line-height:1.4}.profile-hero .hero-copy{max-width:610px}.profile-hero .hero h1{font-size:clamp(32px,3vw,46px)}.profile-hero .hero p{max-width:500px}.cv-hero .hero-copy{max-width:640px}.cv-hero h1{font-size:clamp(35px,3.5vw,52px)}.cv-hero .hero p{max-width:530px}.cv-side-note{position:absolute;right:7%;bottom:9%;width:29%;max-width:340px;padding:20px;border:1px solid var(--line);background:rgba(1,12,22,.78);backdrop-filter:blur(12px)}.cv-side-note strong{display:block;color:var(--green);font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.cv-side-note p{font-size:13px;margin:0;color:#d9e5ee}.book-list-hero{background-image:linear-gradient(110deg,rgba(1,9,18,.97),rgba(1,9,18,.55)),url('images/ultima-orbita-spazio.jpg');background-size:cover;background-position:center}.book-list-hero .hero-copy{max-width:760px}.book-list-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.book-list-card{display:grid;grid-template-columns:170px 1fr;gap:22px;align-items:center;border:1px solid var(--line);padding:22px;background:rgba(2,14,24,.8);border-radius:8px}.book-list-card img{width:100%;max-height:245px;object-fit:contain;filter:drop-shadow(0 10px 16px #0008)}.book-list-card h3{font:800 24px/1.2 'Manrope',sans-serif;margin:0 0 8px}.book-list-card p{font-size:13px;margin:0 0 15px}.footer{max-width:var(--max);margin:0 auto;padding:24px 28px 35px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:var(--subtle);font-size:11px}.footer a:hover{color:var(--green)}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.mobile-only{display:none}
@media(max-width:1050px){.nav-wrap{padding:0 22px}.nav{gap:15px}.nav a{font-size:10px}.hero-copy{padding:42px}.feature-strip{grid-template-columns:repeat(2,1fr);position:relative;padding:0 22px 22px}.profile-hero .hero-copy{padding-bottom:60px}.skills-grid{grid-template-columns:repeat(2,1fr);position:relative;left:auto;right:auto;bottom:auto;padding:0 22px 22px}.profile-hero{display:block}.profile-hero .hero{min-height:590px}.profile-hero .hero-copy{padding-bottom:50px}.book-cover{right:4%;width:clamp(150px,22vw,230px)}.cv-side-note{right:4%;width:31%}}
@media(max-width:720px){:root{--nav-h:66px}.page-shell{padding:0 12px 14px}.nav-wrap{padding:0 16px}.brand{font-size:14px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:65px;left:0;right:0;padding:12px 20px 20px;background:rgba(1,9,18,.98);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav a{padding:12px 0;font-size:12px}.nav a.active:after{bottom:5px;right:auto;width:36px}.theme-toggle{margin-left:auto}.frame{min-height:0}.hero{min-height:670px;align-items:start}.hero-copy{padding:38px 25px 250px;max-width:100%}.hero h1{font-size:42px}.hero h2{font-size:29px}.hero p{font-size:14px}.home-hero{background-position:60% center}.home-hero:before{background:linear-gradient(180deg,rgba(1,9,18,.93) 0%,rgba(1,9,18,.76) 43%,rgba(1,9,18,.2) 100%)}.social-row{gap:14px;margin-top:20px}.social-row a{font-size:11px}.feature-strip{grid-template-columns:1fr 1fr;padding:0 12px 12px;gap:7px;margin-top:-4px}.feature{min-height:85px;padding:12px}.feature strong{font-size:12px}.feature span{font-size:10px}.profile-hero .hero{min-height:520px}.profile-hero .hero-copy{padding:38px 24px 30px}.profile-hero .hero:before{background:linear-gradient(180deg,rgba(1,9,18,.96) 0%,rgba(1,9,18,.78) 52%,rgba(1,9,18,.25) 100%)}.skills-grid{grid-template-columns:1fr 1fr;padding:0 12px 12px;gap:7px}.skill-card{padding:12px;min-height:90px}.skill-card strong{font-size:12px}.skill-card span{font-size:10px}.book-hero .hero{min-height:690px}.book-hero .hero-copy{padding:36px 24px 275px}.book-hero:before{background:linear-gradient(180deg,rgba(1,9,18,.94) 0%,rgba(1,9,18,.72) 50%,rgba(1,9,18,.2) 100%)}.book-cover{width:150px;max-height:250px;right:22px;bottom:18px}.orbita-hero .book-cover,.romitorio-hero .book-cover{width:145px}.book-hero h1{font-size:37px}.hero-meta{gap:9px}.cv-hero .hero{min-height:630px}.cv-hero .hero-copy{padding:38px 24px 210px}.cv-side-note{left:24px;right:24px;bottom:20px;width:auto;max-width:none}.below-section{padding:36px 22px}.card-grid{grid-template-columns:1fr}.book-list-hero .hero{min-height:480px}.book-list-hero .hero-copy{padding-bottom:40px}.book-list-cards{grid-template-columns:1fr}.book-list-card{grid-template-columns:105px 1fr;padding:14px;gap:15px}.book-list-card h3{font-size:20px}.book-list-card img{max-height:170px}.footer{padding:22px 18px}.mobile-only{display:inline}.desktop-only{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}


/* ===== Responsive and light-theme refinement ===== */
:root{--max:2400px;--nav-h:clamp(62px,3.6vw,78px)}
.page-shell{max-width:2400px;width:100%;padding-inline:clamp(12px,1.55vw,38px);padding-bottom:clamp(14px,1.4vw,30px)}
.nav-wrap{max-width:2400px;padding-inline:clamp(16px,2vw,46px)}
.frame{width:100%;min-height:max(620px,calc(100svh - var(--nav-h) - 52px))}
.hero{min-height:max(620px,calc(100svh - var(--nav-h) - 52px))}
.hero h1{font-size:clamp(42px,4.2vw,88px)}
.hero-copy{max-width:min(48vw,850px);padding:clamp(28px,5vw,112px)}
.hero p{font-size:clamp(14px,.9vw,19px);max-width:min(34vw,680px)}
.home-hero .hero-copy{max-width:min(49vw,900px)}

.below-section{padding:clamp(36px,4vw,86px) clamp(20px,4.4vw,100px)}
.card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(12px,1.1vw,24px)}
.book-list-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Light theme: a deliberate cool-white palette, retaining cyan/green accents. */
body.light{--bg:#f2f6fa;--panel:#ffffff;--panel2:#e7eef5;--text:#102235;--muted:#344b60;--subtle:#61768a;--line:rgba(0,132,173,.38);--line-soft:rgba(0,132,173,.18);--cyan:#008fb8;--green:#00a985;--shadow:0 18px 48px rgba(15,45,68,.10);background:#f2f6fa;color:var(--text)}
body.light .site-header{background:rgba(247,250,253,.96);border-bottom-color:rgba(0,132,173,.24)}
body.light .nav a{color:#42586b}body.light .nav a.active,body.light .nav a:hover{color:#102235}
body.light .theme-toggle,body.light .menu-toggle{color:#102235}
body.light .below-section{background:linear-gradient(135deg,#f7fafc,#eaf2f7);border-top-color:rgba(0,132,173,.22)}
body.light .content-card,body.light .book-list-card{background:rgba(255,255,255,.9);border-color:rgba(0,132,173,.22);box-shadow:0 10px 28px rgba(18,47,68,.06)}
body.light .content-card p,body.light .below-section p,body.light .book-list-card p{color:#344b60}
body.light .book-list-card h3,body.light .content-card h3,body.light .below-section h2{color:#102235}
body.light .text-link,body.light .footer a:hover{color:#007d9f}
body.light .btn.secondary{background:rgba(255,255,255,.88);border-color:#7b91a4;color:#102235}
body.light .footer{color:#61768a}
body.light .nav.open{background:rgba(247,250,253,.99)}
/* Scacchi D'Arme: restore the complete, chronological development diary. */
.chess-subnav{position:sticky;top:var(--nav-h);z-index:30;display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(12px,2vw,30px);padding:13px 18px;background:rgba(2,12,22,.94);border-bottom:1px solid var(--line-soft);backdrop-filter:blur(14px)}
.chess-subnav a{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.chess-subnav a:hover{color:var(--green)}
.chess-content{width:min(2100px,94%);margin:0 auto;padding:0 clamp(10px,2vw,36px) 70px}
.chess-content .section{padding:clamp(42px,5.2vw,100px) 0;border-top:1px solid var(--line-soft);scroll-margin-top:calc(var(--nav-h) + 55px)}
.chess-content .section-header{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr);gap:clamp(22px,4vw,76px);align-items:start}
.chess-content .section-index,.chess-content .date{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--green);margin-bottom:12px;font-weight:800}
.chess-content .section h2{font:800 clamp(27px,2.7vw,54px)/1.08 'Manrope',sans-serif;letter-spacing:-.035em;margin:0;color:var(--text)}
.chess-content .section-lead{margin:14px 0 0;color:var(--muted);font-size:clamp(13px,.9vw,17px);line-height:1.75;max-width:440px}
.chess-content .section-body{min-width:0}
.chess-content .section-body p,.chess-content .entry p{color:var(--muted);font-size:clamp(14px,.86vw,17px);line-height:1.85;margin:0 0 17px}
.chess-content .section-body strong,.chess-content .entry strong{color:var(--text)}
.chess-content .entry{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:clamp(20px,3vw,52px);align-items:start}
.chess-content .entry-text{min-width:0}
.chess-content .entry h3{font:800 clamp(22px,1.9vw,36px)/1.15 'Manrope',sans-serif;letter-spacing:-.025em;color:var(--text);margin:9px 0 20px}
.chess-content .entry-image{position:sticky;top:calc(var(--nav-h) + 64px);min-width:0}
.chess-content .image-frame{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel2);box-shadow:var(--shadow)}
.chess-content .image-frame img{display:block;width:100%;height:100%;object-fit:cover}
.chess-content .image-placeholder{display:none}
.chess-content .image-caption{font-size:11px;color:var(--subtle);margin-top:9px;line-height:1.5}
.chess-content .piece .entry-text:before{content:'PERSONAGGIO';display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:10px;letter-spacing:.12em;color:var(--green);margin-bottom:8px}
.chess-content .roadmap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}
.chess-content .roadmap-card{padding:clamp(17px,2vw,28px);border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}
.chess-content .roadmap-card h4{font-size:16px;margin:0 0 8px;color:var(--text)}
.chess-content .roadmap-card p{font-size:14px!important;margin:0;line-height:1.75!important}
.chess-content .artifact,.chess-content .note{margin-top:30px;padding:clamp(20px,2.5vw,36px);border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.chess-content .artifact{display:flex;align-items:center;justify-content:space-between;gap:20px}
.chess-content .artifact h4{margin:0 0 8px;color:var(--text);font-size:18px}
.chess-content .artifact p,.chess-content .note p{margin:0 0 12px;font-size:14px;line-height:1.8}
.chess-content .artifact-link{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:999px;background:var(--green);color:#00121b;font-size:11px;font-weight:900;white-space:nowrap}
.chess-content .note blockquote{margin:0;color:var(--muted)}
body.light .chess-subnav{background:rgba(247,250,253,.96);border-bottom-color:rgba(0,132,173,.2)}
body.light .chess-subnav a{color:#42586b}body.light .chess-subnav a:hover{color:#007d9f}
body.light .chess-content .roadmap-card,body.light .chess-content .artifact,body.light .chess-content .note{background:#fff;border-color:rgba(0,132,173,.22)}
@media(min-width:1900px){.chess-content{width:min(2200px,94%)}.chess-content .entry{grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr)}}
@media(max-width:1050px){.hero-copy{max-width:70vw}.hero p{max-width:55vw}.chess-content .section-header{grid-template-columns:1fr;gap:18px}.chess-content .section-lead{max-width:760px}.chess-content .entry-image{position:relative;top:auto}}
@media(max-width:720px){.page-shell{padding:0 10px 12px}.frame,.hero{min-height:0}.hero{min-height:650px}.hero-copy{max-width:100%;padding:34px 24px 250px}.hero p{max-width:100%}.book-list-cards{grid-template-columns:1fr}.chess-subnav{top:var(--nav-h);gap:9px 16px;justify-content:flex-start;padding:10px 14px}.chess-subnav a{font-size:10px}.chess-content{width:100%;padding:0 16px 45px}.chess-content .section{padding:42px 0}.chess-content .entry{grid-template-columns:1fr;gap:16px}.chess-content .entry-image{order:2}.chess-content .roadmap{grid-template-columns:1fr}.chess-content .artifact{align-items:flex-start;flex-direction:column}.chess-content .section h2{font-size:clamp(26px,8vw,36px)}body.light .nav{background:rgba(247,250,253,.99)}}
@media(min-width:721px) and (max-width:1100px){.chess-content .entry{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr)}}

/* HERO TEXT SCRIM — localizzato, morbido e adattivo ai temi */
:root {
  --hero-copy-ink: #f4f8fc;
  --hero-copy-muted: #d6e3ed;
  --hero-scrim-solid: rgba(2, 10, 20, .84);
  --hero-scrim-mid: rgba(2, 10, 20, .62);
  --hero-scrim-soft: rgba(2, 10, 20, .22);
  --hero-global-start: rgba(1, 9, 18, .24);
  --hero-global-mid: rgba(1, 12, 23, .12);
  --hero-global-end: rgba(1, 12, 23, 0);
  --hero-edge-vignette: rgba(1, 8, 16, .20);
  --hero-secondary-bg: rgba(0, 10, 20, .50);
  --hero-secondary-ink: #ffffff;
  --hero-secondary-border: rgba(233, 248, 255, .82);
  --hero-panel-bg: rgba(1, 12, 22, .82);
  --hero-panel-ink: #edf7ff;
  --hero-panel-muted: #c4d6e3;
}

body.light {
  --hero-copy-ink: #082033;
  --hero-copy-muted: #294459;
  --hero-scrim-solid: rgba(244, 249, 252, .66);
  --hero-scrim-mid: rgba(241, 248, 252, .38);
  --hero-scrim-soft: rgba(239, 247, 251, .10);
  --hero-global-start: rgba(235, 245, 250, .16);
  --hero-global-mid: rgba(235, 245, 250, .07);
  --hero-global-end: rgba(235, 245, 250, 0);
  --hero-edge-vignette: rgba(239, 247, 251, .18);
  --hero-secondary-bg: rgba(246, 251, 254, .80);
  --hero-secondary-ink: #082033;
  --hero-secondary-border: rgba(8, 52, 74, .48);
  --hero-panel-bg: rgba(246, 250, 253, .92);
  --hero-panel-ink: #082033;
  --hero-panel-muted: #294459;
}

/* Lascia visibile la fotografia su tutta la hero; il contrasto forte resta vicino al testo. */
.hero:before,
.home-hero:before,
.profile-hero:before,
.romitorio-hero:before,
.orbita-hero:before,
.scacchi-hero:before,
.cv-hero:before {
  background: linear-gradient(90deg,
    var(--hero-global-start) 0%,
    var(--hero-global-mid) 43%,
    var(--hero-global-end) 82%,
    transparent 100%);
}

.hero:after {
  background: linear-gradient(0deg,
    var(--hero-edge-vignette) 0%,
    transparent 22%,
    transparent 80%,
    var(--hero-edge-vignette) 100%);
}

/* Alone traslucido senza bordi netti: si dissolve gradualmente nell'immagine. */
.hero-copy {
  isolation: isolate;
}

.hero-copy:before {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
  top: -19%;
  bottom: -19%;
  left: -12%;
  width: calc(100% + clamp(130px, 14vw, 250px));
  border-radius: 32%;
  background: radial-gradient(ellipse 88% 79% at 27% 49%,
    var(--hero-scrim-solid) 0%,
    var(--hero-scrim-mid) 48%,
    var(--hero-scrim-soft) 72%,
    transparent 100%);
  filter: blur(14px);
  opacity: .98;
}

.hero p { color: var(--hero-copy-muted); }
.hero .lead { color: var(--hero-copy-ink); }
.hero-meta { color: var(--hero-copy-muted); }
.social-row a { color: var(--hero-copy-ink); }
.hero .btn.secondary {
  background: var(--hero-secondary-bg);
  color: var(--hero-secondary-ink);
  border-color: var(--hero-secondary-border);
}

/* I riquadri di competenza mantengono una superficie autonoma e sempre leggibile. */
.feature,
.skill-card,
.cv-side-note {
  background: var(--hero-panel-bg);
}
.feature strong,
.skill-card strong,
.cv-side-note p { color: var(--hero-panel-ink); }
.feature span,
.skill-card span { color: var(--hero-panel-muted); }
.cv-side-note p { color: var(--hero-panel-muted); }

/* In light mode il verde resta un accento, mentre i testi diventano blu profondo. */
body.light .hero .lead,
body.light .hero p,
body.light .hero-meta,
body.light .social-row a { color: var(--hero-copy-ink); }
body.light .hero .eyebrow { color: #007f80; }
body.light .cv-side-note strong { color: #007f80; }

@media (max-width: 720px) {
  .hero-copy:before {
    top: -9%;
    bottom: -8%;
    left: -7%;
    width: calc(100% + 14%);
    border-radius: 26%;
    background: radial-gradient(ellipse 100% 82% at 31% 23%,
      var(--hero-scrim-solid) 0%,
      var(--hero-scrim-mid) 51%,
      var(--hero-scrim-soft) 78%,
      transparent 100%);
    filter: blur(9px);
  }
  .home-hero:before,
  .profile-hero:before,
  .romitorio-hero:before,
  .orbita-hero:before,
  .scacchi-hero:before,
  .cv-hero:before {
    background: linear-gradient(180deg,
      var(--hero-global-start) 0%,
      var(--hero-global-mid) 48%,
      var(--hero-global-end) 100%);
  }
}

/* La pagina di raccolta libri usa un'immagine come background layer: applica gli stessi livelli tema-aware. */
.book-list-hero {
  background-image: linear-gradient(110deg,
    var(--hero-global-start) 0%,
    var(--hero-global-mid) 56%,
    var(--hero-global-end) 100%),
    url('images/libri-mondi.jpg');
}
