:root{--bg:#f7f7fb;--panel:#fff;--panel2:#eeeef7;--ink:#201f30;--muted:#6f6d80;--purple:#38348d;--lav:#5a55b7;--red:#ed1c24;--cyan:#3d5fa8;--line:rgba(44,41,72,.16);--mono:"IBM Plex Mono",monospace;--sans:"Inter",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans)}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:250px 1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;padding:36px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;background:var(--bg)}.logo{position:relative;width:max-content;padding-bottom:9px;line-height:.8}.logo b{font-size:27px;font-style:italic;letter-spacing:-2px}.logo span{position:absolute;right:0;bottom:0;color:var(--red);font:500 7px var(--mono);letter-spacing:.1em}.side-status{font:9px var(--mono);letter-spacing:.09em;color:var(--muted);margin-top:40px}.side-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 13px var(--cyan);margin-right:8px}.sidebar nav{display:flex;flex-direction:column;margin:auto 0}.sidebar nav a{padding:14px 0;border-bottom:1px solid var(--line);font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;transition:.2s}.sidebar nav a span{display:inline-block;width:42px;color:#55536c}.sidebar nav a:hover{padding-left:7px;color:var(--cyan)}.side-bottom{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:.08em;color:var(--muted)}.side-bottom a{color:var(--red)}.menu{display:none}main{grid-column:2}
.hero{min-height:100svh;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:auto 1fr auto;position:relative;overflow:hidden;background:radial-gradient(circle at 75% 45%,#242064 0,#11102d 26%,var(--bg) 57%);padding:30px 4vw 0}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:70px 70px;opacity:.18;mask-image:linear-gradient(to right,#000,transparent)}.hero-top{grid-column:1/-1;display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.12em;color:#77758c;position:relative}.hero-copy{align-self:center;position:relative;z-index:2}.overline,.section-head>span,.contact-label{font:10px var(--mono);letter-spacing:.14em;color:var(--cyan)}.hero h1{font-size:clamp(57px,7vw,112px);line-height:.87;letter-spacing:-.065em;margin:30px 0}.hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--lav)}.lead{max-width:600px;color:#afadc4;font-size:18px;line-height:1.65}.primary{display:inline-flex;justify-content:space-between;min-width:260px;background:var(--red);padding:18px 20px;margin-top:25px;font:500 10px var(--mono);letter-spacing:.1em}.system-visual{align-self:center;justify-self:center;width:min(37vw,500px);aspect-ratio:1;position:relative;border:1px solid rgba(144,140,255,.35);border-radius:50%;animation:float 5s ease-in-out infinite}.system-visual:before,.system-visual:after{content:"";position:absolute;inset:15%;border:1px dashed rgba(129,217,255,.35);border-radius:50%}.system-visual:after{inset:32%;border-style:solid}.core{position:absolute;inset:38%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--purple);font-size:30px;font-weight:800;transform:rotate(45deg)}.core>*{transform:rotate(-45deg)}.core small{font:7px var(--mono);color:var(--cyan)}.sat{position:absolute;background:var(--panel);border:1px solid var(--line);padding:10px;font:8px var(--mono)}.s1{left:2%;top:45%}.s2{right:7%;top:19%}.s3{right:0;bottom:24%}.axis{position:absolute;background:var(--cyan);height:1px;width:30%;opacity:.5}.a1{left:15%;top:40%;transform:rotate(28deg)}.a2{right:17%;bottom:37%;transform:rotate(-35deg)}@keyframes float{50%{transform:translateY(-12px)}}.hero-bottom{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);position:relative}.hero-bottom div{padding:24px 0;border-right:1px solid var(--line);display:flex;align-items:baseline;gap:15px}.hero-bottom strong{font-size:35px}.hero-bottom span{font:8px var(--mono);color:var(--muted)}
.section{padding:130px 4vw}.section-head{display:grid;grid-template-columns:.45fr 1fr;gap:4vw;align-items:start;margin-bottom:70px}.section-head h2,.contact h2{font-size:clamp(43px,5.4vw,83px);line-height:.95;letter-spacing:-.055em;margin:0}.services{background:#0d0d20}.bento{display:grid;grid-template-columns:1.2fr .8fr 1fr;grid-template-rows:320px 260px;gap:12px}.bento article{background:var(--panel2);border:1px solid var(--line);padding:28px;position:relative;overflow:hidden;transition:.25s}.bento article:hover{border-color:rgba(129,217,255,.55);transform:translateY(-3px)}.bento article>span{font:9px var(--mono);color:var(--cyan)}.bento h3{font-size:30px;line-height:1.05;letter-spacing:-.04em;margin:25px 0 15px}.bento p{font-size:14px;color:var(--muted);line-height:1.6;max-width:380px}.bento small{position:absolute;bottom:26px;font:8px var(--mono);color:#6f6d87}.b1{grid-row:1/3}.b2{grid-column:2/4}.b4{grid-column:2/4;background:var(--purple)!important}.b4 a{position:absolute;right:28px;bottom:28px;font:9px var(--mono);color:var(--cyan)}.icon{font-size:80px;color:var(--lav);margin:60px 0}.mini-browser{height:95px;width:50%;position:absolute;right:25px;top:30px;border:1px solid #66639a;padding:12px}.mini-browser i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:5px}.mini-browser b{display:block;height:50px;margin-top:9px;background:repeating-linear-gradient(90deg,#29275a 0 20px,transparent 20px 27px)}.cloud-grid{position:absolute;width:140px;height:140px;right:-20px;bottom:-20px;background-image:radial-gradient(var(--cyan) 1px,transparent 1px);background-size:14px 14px;opacity:.4}
.method{background:var(--bg)}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:80px 1fr 120px;gap:30px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.timeline article>span{font:10px var(--mono);color:var(--red)}.timeline h3{font-size:30px;margin:0 0 6px}.timeline p{margin:0;color:var(--muted);font-size:14px}.timeline b{font:400 9px var(--mono);color:#66647d;text-align:right}.projects{background:#f0eff5;color:#19182a}.projects .section-head>span{color:var(--purple)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-grid article{background:white;padding:12px}.project-art{height:330px;background:var(--purple);display:grid;place-items:center;position:relative;overflow:hidden}.project-grid article:nth-child(2) .project-art{background:#20204b}.project-grid article:nth-child(3) .project-art{background:#591e29}.project-art b{font:700 90px var(--mono);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.65);z-index:2}.project-art i{position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.3);transform:rotate(35deg)}.project-grid article>div+div{padding:18px 8px}.project-grid span{font:8px var(--mono);color:#777484}.project-grid h3{font-size:24px;margin:10px 0 4px}.project-grid p{font-size:12px;color:#777484}
.contact{background:var(--purple);padding-bottom:80px}.contact-label{color:#c9c7ff}.contact h2{font-size:clamp(57px,8vw,125px);margin:40px 0 80px}.mail{font-size:clamp(24px,4vw,60px);font-weight:600;letter-spacing:-.04em;display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:20px}.mail span{color:var(--cyan)}.addresses{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px}.addresses p{color:#d0ceef;line-height:1.7;font-size:13px}.addresses b{display:block;color:var(--cyan);font:9px var(--mono);letter-spacing:.1em;margin-bottom:12px}footer{display:grid;grid-template-columns:1fr 1fr auto;padding:32px 4vw;background:#05050e;color:#67657b;font:8px var(--mono);letter-spacing:.08em}
@media(max-width:900px){.shell{display:block}.sidebar{width:100%;height:72px;bottom:auto;display:flex;flex-direction:row;align-items:center;padding:0 22px}.side-status,.side-bottom{display:none}.sidebar nav{position:fixed;inset:0;background:var(--bg);margin:0;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.2s}.sidebar nav.open{opacity:1;visibility:visible}.sidebar nav a{font-size:20px;width:220px}.menu{display:flex;margin-left:auto;z-index:2;background:0;border:0;flex-direction:column;gap:7px}.menu i{width:24px;height:1px;background:white}main{display:block}.hero{padding-top:110px;grid-template-columns:1fr;min-height:900px}.hero-copy{align-self:start;margin-top:80px}.system-visual{position:absolute;width:420px;right:-170px;bottom:100px;opacity:.55}.section-head{grid-template-columns:1fr;gap:22px}.project-grid{grid-template-columns:1fr 1fr}.bento{grid-template-columns:1fr 1fr}.b2,.b4{grid-column:auto}.b1{grid-row:auto}.mini-browser{display:none}}
@media(max-width:580px){.hero{padding-left:22px;padding-right:22px}.hero h1{font-size:52px}.hero-bottom div{display:block}.hero-bottom span{display:block;margin-top:5px}.section{padding:95px 22px}.bento,.project-grid{display:block}.bento article{min-height:300px;margin-bottom:12px}.timeline article{grid-template-columns:35px 1fr}.timeline b{display:none}.project-grid article{margin-bottom:18px}.project-art{height:270px}.addresses,footer{grid-template-columns:1fr;gap:22px}.contact h2{font-size:53px}}

/* Variante SistemaChiaro: superfici chiare e colori istituzionali del logo. */
.sidebar{background:rgba(255,255,255,.94);backdrop-filter:blur(18px)}
.logo b{color:var(--purple)}
.sidebar nav a span{color:#9a98aa}
.hero{background:radial-gradient(circle at 75% 45%,#d9dcf4 0,#eef0fa 29%,var(--bg) 61%)}
.hero-top{color:#777487}
.lead{color:var(--muted)}
.system-visual{border-color:rgba(56,52,141,.3)}
.system-visual:before,.system-visual:after{border-color:rgba(61,95,168,.3)}
.sat{background:#fff;box-shadow:0 8px 24px rgba(43,39,84,.08)}
.services{background:#f0f1f7}
.bento article{background:#fff;box-shadow:0 14px 38px rgba(43,39,84,.06)}
.bento article:hover{border-color:rgba(56,52,141,.48)}
.bento small{color:#777487}
.mini-browser{border-color:#aaa8c5}
.mini-browser b{background:repeating-linear-gradient(90deg,#d8d9ec 0 20px,transparent 20px 27px)}
.method{background:#fff}
.timeline b{color:#8b8998}
footer{background:#e9e9f1;color:#625f74;border-top:1px solid var(--line)}
@media(max-width:900px){.menu i{background:var(--purple)}}

/* Revisione contenuti e layout */
.logo{display:block;width:185px;padding:0;line-height:1}
.logo img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.primary{background:var(--purple);color:#fff;box-shadow:0 10px 28px rgba(56,52,141,.18);transition:.2s}
.primary:hover{background:#292669;transform:translateY(-2px)}
.hero-bottom{gap:12px;border-top:0;padding-bottom:18px}
.hero-bottom div{min-height:86px;padding:18px 20px;border:1px solid var(--line);background:rgba(255,255,255,.66);align-items:center}
.hero-bottom div:last-child{border-right:1px solid var(--line)}
.hero-bottom strong{font-size:38px;color:var(--purple)}
.hero-bottom span{font-size:10px;line-height:1.35;color:#4f4d60}
.bento{grid-template-columns:1.05fr 1fr 1fr;grid-template-rows:320px 300px 270px}
.b1{grid-column:1;grid-row:1/3}
.b2{grid-column:2/4;grid-row:1}
.b3{grid-column:2;grid-row:2}
.b6{grid-column:3;grid-row:2}
.b5{grid-column:1;grid-row:3}
.b4{grid-column:2/4;grid-row:3}
.b2 h3,.b2 p{max-width:44%}
.mini-browser{width:44%;right:28px;top:50%;transform:translateY(-50%)}
.b5{background:#e3e5f3!important}
.b5 h3{margin-top:42px}.b5 p{max-width:370px}
.ai-mark{position:absolute;right:22px;top:20px;font:700 54px var(--mono);color:rgba(56,52,141,.14)}
.mobile-device{position:absolute;right:25px;top:24px;width:62px;height:108px;border:2px solid #8b89ac;border-radius:12px;background:#f7f7fb;padding:8px}
.mobile-device i{display:block;height:74px;border-radius:6px;background:linear-gradient(145deg,#dedff0,#c8cae4)}
.mobile-device b{display:block;width:16px;height:3px;background:#8b89ac;border-radius:2px;margin:8px auto}
.b6 h3,.b6 p{max-width:68%}
.project-grid{align-items:start}
.project-art{height:210px;aspect-ratio:16/9}
.project-art b{font-size:64px}
.project-art i{width:150px;height:150px}
.view-all-projects{display:flex;justify-content:space-between;align-items:center;width:min(420px,100%);margin:46px 0 0 auto;padding:17px 20px;border:1px solid var(--purple);color:var(--purple);font:500 10px var(--mono);letter-spacing:.1em;transition:.2s}
.view-all-projects:hover{background:var(--purple);color:#fff}
.contact{color:#fff}
.contact h2{color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.08)}
.addresses{gap:34px}
.addresses p{font-size:16px;color:#fff;line-height:1.75;padding:22px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07)}
.addresses b{font-size:10px;color:#fff;margin-bottom:15px}
@media(max-width:1100px){.b2 h3,.b2 p{max-width:52%}.mini-browser{width:38%}.b6 h3,.b6 p{max-width:62%}}
@media(max-width:900px){.logo{width:165px}.bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.b1,.b2,.b3,.b4,.b5,.b6{grid-column:auto;grid-row:auto}.b2 h3,.b2 p,.b6 h3,.b6 p{max-width:100%}.mini-browser,.mobile-device{display:none}.hero-bottom{gap:7px}}
@media(max-width:580px){.hero-bottom{grid-template-columns:1fr}.hero-bottom div{min-height:72px}.bento{display:block}.project-art{height:auto}.addresses p{font-size:15px}}

/* Pagina archivio progetti */
.projects-page-hero{padding:120px 4vw 90px;background:linear-gradient(145deg,#f7f7fb,#e9eaf5);border-bottom:1px solid var(--line)}
.projects-page-hero>span{font:500 10px var(--mono);letter-spacing:.14em;color:var(--purple)}
.projects-page-hero h1{font-size:clamp(56px,7vw,110px);line-height:.9;letter-spacing:-.065em;margin:34px 0}
.projects-page-hero p{max-width:670px;font-size:18px;line-height:1.65;color:var(--muted)}
.all-projects{display:grid;grid-template-columns:1fr 1fr;gap:70px 24px;padding:90px 4vw 130px;background:#f0f1f7}
.all-projects article{background:#fff;padding:12px 12px 26px}
.project-shot{aspect-ratio:16/9;display:grid;place-items:center;position:relative;overflow:hidden}
.project-shot:before{content:"";position:absolute;width:48%;aspect-ratio:1;border:1px solid rgba(255,255,255,.35);transform:rotate(35deg)}
.project-shot b{font:700 clamp(54px,7vw,100px) var(--mono);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.7);z-index:1}
.project-shot small{position:absolute;left:18px;bottom:15px;color:rgba(255,255,255,.65);font:8px var(--mono);letter-spacing:.1em}
.tone-1{background:#38348d}.tone-2{background:#27264d}.tone-3{background:#6e2531}.tone-4{background:#31547b}.tone-5{background:#486557}.tone-6{background:#504878}.tone-7{background:#5c5265}.tone-8{background:#932c32}
.all-projects article>span{display:block;margin:20px 8px 0;font:8px var(--mono);letter-spacing:.1em;color:var(--purple)}
.all-projects h2{font-size:28px;margin:10px 8px 5px}.all-projects p{margin:0 8px;color:var(--muted);font-size:14px}
.projects-cta{display:flex;justify-content:space-between;align-items:center;padding:70px 4vw;background:var(--purple);color:#fff}
.projects-cta p{font-size:28px;font-weight:600;margin:0}.projects-cta a{padding:16px 20px;border:1px solid rgba(255,255,255,.65);font:10px var(--mono);letter-spacing:.1em}
@media(max-width:700px){.projects-page-hero{padding:120px 22px 70px}.projects-page-hero h1{font-size:52px}.all-projects{grid-template-columns:1fr;padding:70px 22px 90px}.projects-cta{align-items:flex-start;flex-direction:column;gap:28px;padding:55px 22px}}

/* Correzioni di larghezza e contrasto */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.shell{grid-template-columns:250px minmax(0,1fr);width:100%;max-width:100%}
main{min-width:0;max-width:100%}
.hero{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);width:100%;max-width:100%}
.hero-copy,.hero-top,.hero-bottom{min-width:0;max-width:100%}
.system-visual{max-width:100%}
.b4,.b4 h3{color:#fff}
.b4 p{color:#e6e5f4}
.b4>span,.b4 a{color:#fff}
.b3{background:#dce8f5!important}
.b3 h3{color:#25234f}.b3 p{color:#55566b}.b3>span{color:#315e94}
.timeline{display:grid;gap:10px;border-top:0}
.timeline article{padding:28px 30px;border:1px solid var(--line);background:#f1f2f8}
.timeline article:nth-child(2){background:#ececf6}
.timeline article:nth-child(3){background:#f3eff5}
.timeline article:nth-child(4){background:#e9eef5}
@media(max-width:900px){.hero{grid-template-columns:1fr}.timeline article{padding:25px 22px}}
@media(max-width:580px){.shell{display:block}.timeline article{padding:22px 18px}}

/* Accenti caldi in chiave tecnologica: corallo elettrico e arancio segnale. */
:root{--electric-coral:#ff5a45;--signal-orange:#ff7a21;--hot-red:#ed1c24}
body{background:var(--bg)}
.sidebar{background:rgba(255,255,255,.95)}
.side-status i{background:var(--electric-coral);box-shadow:0 0 14px rgba(255,90,69,.5)}
.hero{background:radial-gradient(circle at 76% 43%,#d9dcf4 0,#eef0fa 31%,var(--bg) 62%)}
.overline{color:var(--purple)}
.overline:before{content:"";display:inline-block;width:24px;height:2px;background:var(--electric-coral);margin:0 10px 3px 0}
.hero-bottom div:nth-child(1),.hero-bottom div:nth-child(3){background:#fff;border-color:var(--line)}
.hero-bottom div:nth-child(2){background:#f0f1f8;border-top:3px solid var(--electric-coral)}
.services{background:#f0f1f7}
.services .section-head>span,.method .section-head>span,.projects .section-head>span{color:var(--hot-red)}
.b2{background:#fff!important;border-top:3px solid var(--electric-coral)}
.b6{background:#fff1ed!important;border-color:#ffc4b9!important}
.b6>span{color:#d43f2c}.b6 h3{color:#28253c}.b6 p{color:#655c66}
.mobile-device{border-color:var(--electric-coral);background:#fff}
.mobile-device i{background:linear-gradient(145deg,#ff8b63,#ff5a45)}
.mobile-device b{background:var(--electric-coral)}
.b5{background:linear-gradient(145deg,#e6e6f4,#f2f2f8)!important;border-left:3px solid var(--signal-orange)}
.ai-mark{color:rgba(255,90,69,.18)}
.timeline article:nth-child(1){background:linear-gradient(100deg,#f6fbf7,#edf7f0);border-left:3px solid #a8cfb3}
.timeline article:nth-child(2){background:linear-gradient(100deg,#e8f5eb,#d8ecde);border-left:3px solid #78b58a}
.timeline article:nth-child(3){background:linear-gradient(100deg,#cce6d3,#b4d8bf);border-left:3px solid #4f9667}
.timeline article:nth-child(4){background:linear-gradient(100deg,#659f77,#477b5a);border-left:3px solid #285b3c;box-shadow:0 12px 28px rgba(40,91,60,.13)}
.timeline article>span{color:#36764c}
.timeline article:nth-child(4)>span,.timeline article:nth-child(4) h3,.timeline article:nth-child(4) p,.timeline article:nth-child(4) b{color:#fff}
.projects{background:#f0eff5}
.view-all-projects{border-color:var(--electric-coral);color:#c83929}
.view-all-projects:hover{background:var(--electric-coral);color:#fff}
footer{background:#e9e9f1;color:#625f74;border-top:3px solid var(--electric-coral)}
.projects-page-hero{background:linear-gradient(145deg,#f7f7fb,#e9eaf5)}
.projects-page-hero>span{color:var(--hot-red)}
.all-projects{background:#f0f1f7}

/* Movimento e micro-interazioni */
.motion-enabled .motion-item{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms)}
.motion-enabled .motion-item.is-visible{opacity:1;transform:translateY(0)}
.primary,.view-all-projects,.mail,.projects-cta a{position:relative;overflow:hidden}
.primary span,.view-all-projects span,.mail span,.projects-cta a{transition:transform .25s ease}
.bento article,.timeline article,.project-grid article,.all-projects article,.hero-bottom div,.addresses p{transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease,border-color .32s ease,background-color .32s ease}
.bento article:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--electric-coral),var(--signal-orange));transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.project-art,.project-shot{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.project-art b,.project-shot b{transition:transform .45s cubic-bezier(.22,1,.36,1),letter-spacing .45s ease}
.project-art i,.project-shot:before{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.timeline h3,.hero-bottom strong{transition:color .25s ease,transform .25s ease}
.system-visual .core{transition:filter .35s ease,box-shadow .35s ease}

@media(hover:hover){
  .bento article:hover{transform:translateY(-7px);box-shadow:0 22px 46px rgba(43,39,84,.13)}
  .bento article:hover:after{transform:scaleX(1)}
  .hero-bottom div:hover{transform:translateY(-5px);box-shadow:0 15px 32px rgba(43,39,84,.1);border-color:rgba(56,52,141,.3)}
  .hero-bottom div:hover strong{transform:scale(1.06);color:var(--electric-coral)}
  .timeline article:hover{transform:translateX(8px);box-shadow:0 14px 30px rgba(43,39,84,.09)}
  .timeline article:hover h3{color:var(--purple)}
  .project-grid article:hover,.all-projects article:hover{transform:translateY(-8px);box-shadow:0 22px 45px rgba(43,39,84,.14)}
  .project-grid article:hover .project-art,.all-projects article:hover .project-shot{transform:scale(.975)}
  .project-grid article:hover .project-art b,.all-projects article:hover .project-shot b{transform:scale(1.08);letter-spacing:.04em}
  .project-grid article:hover .project-art i{transform:rotate(48deg) scale(1.12)}
  .all-projects article:hover .project-shot:before{transform:rotate(48deg) scale(1.12)}
  .primary:hover span,.view-all-projects:hover span,.mail:hover span{transform:translateX(7px)}
  .projects-cta a:hover{background:#fff;color:var(--purple)}
  .system-visual:hover .core{filter:brightness(1.12);box-shadow:0 0 38px rgba(255,90,69,.28)}
  .addresses p:hover{transform:translateY(-5px);background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  .motion-item{opacity:1!important;transform:none!important}
}

/* Tech Journal */
.insights{background:#fff}
.insight-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);min-height:430px;border:1px solid var(--line)}
.insight-cover,.journal-image{position:relative;overflow:hidden;background:linear-gradient(135deg,#24214f 0 52%,#ff5a45 52% 53%,#3d5fa8 53%);color:#fff;display:flex;justify-content:space-between;padding:28px;font:9px var(--mono);letter-spacing:.12em}
.insight-cover:before,.journal-image:before{content:"";position:absolute;width:45%;aspect-ratio:1;border:1px solid rgba(255,255,255,.32);border-radius:50%;left:28%;top:18%;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.insight-cover:after,.journal-image:after{content:"";position:absolute;width:25%;aspect-ratio:1;background:rgba(255,255,255,.1);transform:rotate(45deg);left:39%;top:30%;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.insight-cover b,.journal-image b{align-self:flex-end;font:700 82px var(--mono);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.65);z-index:1}
.insight-cover.insight-photo{padding:0}.insight-cover.insight-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.insight-cover.insight-photo:after{inset:0;width:auto;aspect-ratio:auto;left:0;top:0;transform:none;background:linear-gradient(180deg,transparent 45%,rgba(20,19,40,.7))}.insight-cover.insight-photo>span{position:absolute;left:24px;bottom:22px;z-index:2;padding:8px 10px;background:var(--electric-coral)}
@media(hover:hover){.insight-cover.insight-photo:hover img{transform:scale(1.04)}.insight-cover.insight-photo:hover:after{transform:none}}
.insight-copy{padding:55px;display:flex;flex-direction:column;justify-content:center}
.article-meta,.insight-row span,.journal-grid article>div>span{font:9px var(--mono);letter-spacing:.1em;color:var(--hot-red)}
.insight-copy h3{font-size:clamp(31px,3.2vw,50px);line-height:1.02;letter-spacing:-.045em;margin:24px 0}
.insight-copy p{color:var(--muted);line-height:1.7;margin:0 0 30px}
.insight-copy>a{font:500 10px var(--mono);letter-spacing:.1em;color:var(--purple)}
.insight-copy>a span{display:inline-block;transition:transform .25s ease}
.insight-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.insight-row>a{padding:28px;border:1px solid var(--line);background:#f4f4f9;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.insight-row h3{font-size:22px;line-height:1.2;margin:18px 0 28px;max-width:480px}
.insight-row b{font:400 9px var(--mono);color:var(--muted)}
.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 22px;padding:90px 4vw 130px;background:#f0f1f7}
.journal-grid article{background:#fff;padding:12px 12px 30px}
.journal-grid .journal-lead{grid-column:1/-1;display:grid;grid-template-columns:1.2fr .8fr;padding:12px}
.journal-image{aspect-ratio:16/9}
.journal-lead .journal-image{aspect-ratio:auto;min-height:430px}
.journal-grid article>div{padding:28px 22px 0}
.journal-grid h2{font-size:30px;line-height:1.08;letter-spacing:-.035em;margin:18px 0 12px}
.journal-lead h2{font-size:clamp(36px,4vw,60px)}
.journal-grid p{color:var(--muted);line-height:1.6}
.tone-data{background:linear-gradient(135deg,#31547b 0 54%,#ff7a21 54% 55%,#25234f 55%)}
.tone-security{background:linear-gradient(135deg,#4a2455 0 47%,#ff5a45 47% 48%,#292669 48%)}
.article-page{background:#fff}
.article-header{padding:110px 7vw 70px;max-width:1200px}
.article-header>a,.article-header>span{font:9px var(--mono);letter-spacing:.11em;color:var(--hot-red)}
.article-header>span{display:block;margin:65px 0 25px}
.article-header h1{font-size:clamp(50px,7vw,104px);line-height:.92;letter-spacing:-.06em;margin:0;max-width:1100px}
.article-header p{font-size:21px;line-height:1.6;color:var(--muted);max-width:750px;margin:38px 0 0}
.article-hero-image{height:min(58vw,680px);margin:0 4vw;background:linear-gradient(140deg,#292669,#3d5fa8 57%,#ff5a45 57.2%);display:grid;place-items:center;position:relative;color:#fff;overflow:hidden}
.article-hero-image:before{content:"";position:absolute;width:45%;aspect-ratio:1;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.article-hero-image span,.article-inline-image span{position:absolute;left:24px;bottom:20px;font:9px var(--mono);letter-spacing:.1em}
.article-hero-image b{font:700 clamp(100px,18vw,260px) var(--mono);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.5)}
.article-layout{display:grid;grid-template-columns:260px minmax(0,720px);gap:6vw;justify-content:center;padding:100px 5vw}
.article-layout>aside{border-top:3px solid var(--electric-coral);padding-top:20px;height:max-content}
.article-layout>aside span{font:9px var(--mono);letter-spacing:.12em;color:var(--hot-red)}
.article-layout>aside p{font-size:14px;line-height:1.65;color:var(--muted)}
.article-body{font-size:18px;line-height:1.8;color:#444253}
.article-body .article-intro{font-size:25px;line-height:1.5;color:var(--ink);margin-top:0}
.article-body h2{font-size:38px;line-height:1.1;letter-spacing:-.035em;color:var(--ink);margin:65px 0 20px}
.article-body blockquote{font-size:27px;line-height:1.45;color:var(--purple);margin:60px 0;padding:10px 0 10px 28px;border-left:3px solid var(--electric-coral)}
.article-inline-image{aspect-ratio:3/2;background:linear-gradient(145deg,#e1e3f2,#bfc5e4);position:relative;margin:55px 0;color:var(--purple)}
.article-footer{margin:0 4vw;padding:45px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.1em;color:var(--purple)}
.article-photo{margin:0 4vw;position:relative;background:#e7e8f0}
.article-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.article-photo figcaption{position:absolute;right:14px;bottom:12px;padding:7px 9px;background:rgba(20,19,37,.72);color:#fff;font:8px var(--mono);letter-spacing:.06em}
.article-body section{margin-top:65px}.article-body section:first-of-type{margin-top:0}.article-body section h2{margin-top:0}
.article-related{margin:0 4vw 80px;padding:50px;background:#f0f1f7;border-left:3px solid var(--electric-coral)}
.article-related>span{font:9px var(--mono);letter-spacing:.12em;color:var(--hot-red)}.article-related h2{font-size:34px;margin:18px 0 30px}.article-related a{font:500 9px var(--mono);letter-spacing:.1em;color:var(--purple)}
.article-faq{margin-top:75px;padding-top:10px;border-top:3px solid var(--electric-coral)}.article-faq details{border-bottom:1px solid var(--line)}.article-faq summary{padding:22px 42px 22px 0;cursor:pointer;color:var(--ink);font-size:18px;font-weight:600;line-height:1.35;position:relative}.article-faq summary:after{content:"+";position:absolute;right:8px;color:var(--purple);font:400 24px var(--mono)}.article-faq details[open] summary:after{content:"−"}.article-faq details p{margin:0;padding:0 35px 24px 0;color:var(--muted);font-size:16px;line-height:1.7}

/* Tema Static per archivio, progetti e articoli */
:root{--bg:#11102a;--panel:#191735;--panel2:#24214a;--ink:#fbfbff;--muted:#aaa9bc;--purple:#5d58d6;--lav:#817cff;--red:#ed1c24;--cyan:#ff6b70;--line:rgba(255,255,255,.15);--mono:"Space Mono",Consolas,monospace;--sans:"Manrope",Arial,sans-serif}
body{background:var(--bg);color:var(--ink)}.shell{display:block}.sidebar{position:sticky;top:0;width:100%;height:84px;padding:0 clamp(24px,5vw,80px);display:flex;flex-direction:row;align-items:center;background:rgba(17,16,42,.94);border:0;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.sidebar .logo{width:185px}.sidebar .logo img{filter:brightness(0) invert(1);mix-blend-mode:normal}.side-status,.side-bottom{display:none}.sidebar nav{flex-direction:row;margin-left:auto;gap:clamp(18px,2.5vw,42px)}.sidebar nav a{border:0;padding:10px 0;font-size:10px}.sidebar nav a span{display:none}.sidebar nav a.current{padding-left:0;color:#ff6b70}.sidebar nav a:hover{padding-left:0;color:#ff6b70}main{display:block;max-width:none}
.projects-page-hero,.journal-hero{padding-top:130px;background:radial-gradient(circle at 80% 20%,#38348d,#191735 36%,#11102a 70%);color:#fff}.projects-page-hero p{color:#bbb9ca}.projects-page-hero>span{color:#ff6b70}.journal-browser,.all-projects{background:#11102a}.journal-index,.journal-search input,.journal-list article,.all-projects article{background:#191735;color:#fff}.journal-index nav a,.journal-month>header{border-color:var(--line)}.journal-month>header h2,.journal-list h3,.all-projects h2{color:#fff}.journal-list p,.all-projects p,.journal-search>p{color:#aaa9bc}.journal-search input{border-color:var(--line);border-bottom-color:#ff5b61}.journal-search input::placeholder{color:#77758d}.journal-empty{background:#191735;color:#fff}.projects-cta{background:#38348d}.project-shot{filter:saturate(.9)}
.article-page{background:#11102a;color:#fff}.article-header{color:#fff}.article-header>a,.article-header>span{color:#ff6b70}.article-header p{color:#b8b6c8}.article-photo{background:#191735}.article-layout>aside{border-color:#ff5b61}.article-layout>aside span{color:#ff6b70}.article-layout>aside p{color:#aaa9bc}.article-body,.article-body p{color:#d2d0dd}.article-body .article-intro,.article-body h2,.article-faq summary{color:#fff}.article-body blockquote{color:#a7a3ff;border-color:#ff5b61}.article-faq{border-color:#ff5b61}.article-faq details{border-color:var(--line)}.article-faq details p{color:#aaa9bc}.article-related{background:#191735;border-color:#ff5b61}.article-related h2{color:#fff}.article-footer{color:#a7a3ff}footer{background:#080716;color:#89869d;border-top:1px solid var(--line)}
@media(max-width:900px){.sidebar{height:70px}.sidebar nav{position:fixed;inset:0;background:#11102a;flex-direction:column;margin:0}.sidebar nav a{font-size:20px}.menu{display:flex;margin-left:auto}.menu i{background:#fff}}

/* Logo istituzionale su barra chiara */
.sidebar{background:rgba(255,255,255,.96);border-bottom-color:rgba(17,16,42,.15)}.sidebar .logo img{filter:none;mix-blend-mode:multiply}.sidebar nav a{color:#29273e}.sidebar nav a.current,.sidebar nav a:hover{color:#ed1c24}
@media(max-width:900px){.sidebar nav{background:#fff}.menu i{background:#38348d}}
@media(hover:hover){.insight-cover:hover:before,.journal-image:hover:before{transform:scale(1.12)}.insight-cover:hover:after,.journal-image:hover:after{transform:rotate(58deg) scale(1.12)}.insight-copy>a:hover span{transform:translateX(7px)}.insight-row>a:hover{transform:translateY(-6px);box-shadow:0 18px 38px rgba(43,39,84,.1);border-color:rgba(56,52,141,.35)}.journal-grid article:hover{transform:translateY(-7px);box-shadow:0 20px 42px rgba(43,39,84,.12)}}
@media(max-width:900px){.insight-feature{grid-template-columns:1fr}.insight-cover{min-height:360px}.journal-grid .journal-lead{grid-template-columns:1fr}.journal-lead .journal-image{min-height:360px}.article-layout{grid-template-columns:1fr}.article-layout>aside{max-width:500px}}
@media(max-width:580px){.insight-row,.journal-grid{grid-template-columns:1fr}.insight-copy{padding:34px 24px}.insight-cover{min-height:290px}.journal-grid{padding:70px 22px 90px}.journal-grid .journal-lead{grid-column:auto}.journal-lead .journal-image{min-height:270px}.article-header{padding:120px 22px 55px}.article-header>span{margin-top:45px}.article-hero-image{margin:0 22px;height:64vw}.article-layout{padding:70px 22px}.article-body{font-size:17px}.article-body .article-intro{font-size:22px}.article-body h2{font-size:31px}.article-body blockquote{font-size:22px;margin:45px 0}.article-footer{margin:0 22px;gap:20px;flex-direction:column}}

/* Archivio navigabile del Tech Journal */
[hidden]{display:none!important}
.journal-browser{display:grid;grid-template-columns:245px minmax(0,1fr);gap:4vw;padding:85px 4vw 130px;background:#f0f1f7;align-items:start}
.journal-index{position:sticky;top:36px;border-top:3px solid var(--electric-coral);background:#fff;padding:24px}
.journal-index-label{font:500 9px var(--mono);letter-spacing:.13em;color:var(--hot-red)}
.journal-index nav{display:flex;flex-direction:column;margin-top:22px}
.journal-index nav a{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;transition:padding .2s ease,color .2s ease}
.journal-index nav a:hover{padding-left:6px;color:var(--purple)}
.journal-index nav b{font:500 9px var(--mono);color:var(--muted)}
.journal-content{min-width:0}
.journal-search{margin-bottom:75px}
.journal-search>label{display:block;margin-bottom:14px;font:500 9px var(--mono);letter-spacing:.13em;color:var(--purple)}
.journal-search>div{position:relative}
.journal-search input{width:100%;height:76px;padding:0 70px 0 26px;border:1px solid var(--line);border-bottom:3px solid var(--purple);outline:0;background:#fff;color:var(--ink);font:500 clamp(17px,2vw,23px) var(--sans);transition:border-color .25s ease,box-shadow .25s ease}
.journal-search input::placeholder{color:#aaa8b5;font-weight:400}
.journal-search input:focus{border-color:var(--purple);box-shadow:0 15px 35px rgba(43,39,84,.1)}
.journal-search button{position:absolute;right:16px;top:50%;width:42px;height:42px;transform:translateY(-50%);border:0;border-radius:50%;background:#ececf5;color:var(--purple);font-size:24px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease,background .2s ease}
.journal-search button.visible{opacity:1;pointer-events:auto}
.journal-search button:hover{background:#dedfec}
.journal-search>p{margin:13px 0 0;color:var(--muted);font:9px var(--mono);letter-spacing:.06em}
.journal-month{scroll-margin-top:35px;margin-bottom:90px}
.journal-month>header{display:grid;grid-template-columns:90px 1fr auto;align-items:end;gap:20px;padding-bottom:21px;border-bottom:1px solid var(--line)}
.journal-month>header span,.journal-month>header b{font:500 9px var(--mono);letter-spacing:.1em;color:var(--hot-red)}
.journal-month>header h2{font-size:clamp(39px,5vw,68px);line-height:.9;letter-spacing:-.05em;margin:0}
.journal-month>header b{color:var(--muted)}
.journal-list article{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);gap:0;background:#fff;border-bottom:1px solid var(--line);transition:transform .3s ease,box-shadow .3s ease}
.journal-thumb{position:relative;overflow:hidden;min-height:255px;padding:20px;display:flex;justify-content:space-between;color:#fff;font:9px var(--mono);letter-spacing:.1em;background:linear-gradient(135deg,#24214f 0 52%,#ff5a45 52% 53%,#3d5fa8 53%)}
.journal-thumb.tone-data{background:linear-gradient(135deg,#31547b 0 54%,#ff7a21 54% 55%,#25234f 55%)}
.journal-thumb.tone-security{background:linear-gradient(135deg,#4a2455 0 47%,#ff5a45 47% 48%,#292669 48%)}
.journal-thumb.journal-photo{padding:0;background:#24214f}.journal-thumb.journal-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.journal-thumb.journal-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,15,35,.05),rgba(16,15,35,.65))}.journal-thumb.journal-photo>span{position:absolute;left:18px;bottom:16px;z-index:2;padding:7px 9px;background:var(--electric-coral);color:#fff}
@media(hover:hover){.journal-list article:hover .journal-photo img{transform:scale(1.045)}}
.journal-thumb:before{content:"";position:absolute;width:43%;aspect-ratio:1;border:1px solid rgba(255,255,255,.3);border-radius:50%;left:30%;top:22%;transition:transform .5s ease}
.journal-thumb>b{align-self:flex-end;font:700 54px var(--mono);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.65);z-index:1}
.journal-list article>div{padding:32px;display:flex;flex-direction:column;align-items:flex-start}
.journal-list article>div>span{font:9px var(--mono);letter-spacing:.1em;color:var(--hot-red)}
.journal-list h3{font-size:clamp(25px,3vw,39px);line-height:1.06;letter-spacing:-.04em;margin:18px 0 12px}
.journal-list p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 25px}
.journal-list article>div>a{margin-top:auto;font:500 9px var(--mono);letter-spacing:.1em;color:var(--purple)}
.journal-empty{padding:55px;border:1px dashed rgba(56,52,141,.3);background:#fff;text-align:center;margin-bottom:60px}
.journal-empty b{font-size:27px}.journal-empty p{color:var(--muted)}
@media(hover:hover){.journal-list article:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(43,39,84,.11);z-index:1}.journal-list article:hover .journal-thumb:before{transform:scale(1.18)}}
@media(max-width:900px){.journal-browser{grid-template-columns:1fr}.journal-index{position:relative;top:auto}.journal-index nav{display:grid;grid-template-columns:repeat(2,1fr);column-gap:28px}.journal-search{margin:20px 0 65px}}
@media(max-width:650px){.journal-browser{padding:65px 22px 90px}.journal-index nav{grid-template-columns:1fr}.journal-search input{height:66px;padding-left:18px;font-size:16px}.journal-month>header{grid-template-columns:1fr auto}.journal-month>header span{grid-column:1/-1}.journal-list article{grid-template-columns:1fr;margin-bottom:16px}.journal-thumb{min-height:220px}.journal-list article>div{padding:25px 20px}.journal-month{margin-bottom:70px}}
.sidebar nav a.current{padding-left:7px;color:var(--purple);border-bottom-color:var(--electric-coral)}

/* Footer condiviso, coerente con la home Static. */
footer[data-shared-footer]{display:grid;grid-template-columns:1.35fr .7fr .85fr;gap:clamp(35px,6vw,90px);align-items:start;padding:64px 4vw 28px;background:#e9e9f1;color:#29273e;border-top:3px solid #ed1c24;font-family:var(--sans);letter-spacing:normal}
.footer-brand img{display:block;width:min(230px,100%);height:auto;mix-blend-mode:multiply}
.footer-brand p{max-width:330px;margin:25px 0 0;color:#625f74;font-size:13px;line-height:1.65}
.footer-links,.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.footer-links>span,.footer-contact>span{margin-bottom:9px;color:#77748a;font:700 9px var(--mono);letter-spacing:.12em}
.footer-links a,.footer-contact a{color:#29273e;font-size:14px;line-height:1.35;transition:color .2s ease,transform .2s ease}
.footer-links a:hover,.footer-contact a:hover{color:#ed1c24;transform:translateX(3px)}
.footer-contact p{margin:7px 0 0;color:#625f74;font-size:12px}
.footer-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;margin-top:18px;padding-top:24px;border-top:1px solid rgba(44,41,72,.17);color:#77748a;font:9px var(--mono);letter-spacing:.07em}
@media(max-width:800px){footer[data-shared-footer]{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:580px){footer[data-shared-footer]{grid-template-columns:1fr;gap:38px;padding:50px 22px 28px}.footer-brand{grid-column:auto}.footer-legal{display:grid}}

/* Footer compatto: due sole aree, con collegamenti interni descrittivi. */
footer[data-shared-footer]{grid-template-columns:230px minmax(0,1fr) 250px;gap:clamp(35px,4vw,65px);padding-top:36px;padding-bottom:20px}
.footer-brand{display:block}
.footer-explore{display:block}
.footer-explore>span,.footer-contact>span{display:block;margin-bottom:20px;color:#77748a;font:700 9px var(--mono);letter-spacing:.12em}
.footer-explore>span{width:100%;padding-bottom:13px;border-bottom:1px solid rgba(44,41,72,.2)}
.footer-mark{display:block;width:min(210px,100%);margin:0}.footer-mark img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.footer-link-groups{display:grid;grid-template-columns:.55fr .75fr 1.35fr;gap:clamp(25px,4vw,60px)}
.footer-link-groups nav{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.footer-link-groups b{margin-bottom:5px;color:#29273e;font:700 9px var(--mono);letter-spacing:.09em}
.footer-link-groups a{color:#625f74;font-size:12px;line-height:1.4;transition:color .2s ease,transform .2s ease}
.footer-link-groups a:hover{color:#ed1c24;transform:translateX(3px)}
.footer-contact{padding-left:30px;border-left:1px solid rgba(44,41,72,.17)}
.footer-legal{margin-top:4px;padding-top:20px}
@media(max-width:900px){footer[data-shared-footer]{grid-template-columns:180px 1fr}.footer-brand{grid-column:auto}.footer-contact{grid-column:1/-1;padding:25px 0 0;border-left:0;border-top:1px solid rgba(44,41,72,.17)}.footer-link-groups{grid-template-columns:repeat(2,1fr)}.footer-link-groups nav:last-child{grid-column:1/-1}}
@media(max-width:580px){footer[data-shared-footer]{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-link-groups{grid-template-columns:1fr}.footer-link-groups nav:last-child{grid-column:auto}.footer-mark{width:180px}}

/* Screenshot reali nell'archivio progetti. */
.project-shot.project-image{background:#0b0a1c}
.project-shot.project-image:before{display:none}
.project-shot.project-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transition:transform .45s cubic-bezier(.22,1,.36,1),filter .35s ease;
}
@media(hover:hover) and (pointer:fine){
  .all-projects article:hover .project-shot.project-image img{transform:scale(1.018);filter:saturate(1.05) contrast(1.02)}
}

/* Archivio progetti: galleria editoriale compatta e sfalsata. */
.all-projects{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:34px 22px;
  align-items:start;
  padding-top:80px;
}
.all-projects article{
  position:relative;
  min-width:0;
  padding:0 0 24px;
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.all-projects article:nth-child(4n+2),
.all-projects article:nth-child(4n+4){margin-top:42px}
.all-projects .project-shot{aspect-ratio:16/10;border:1px solid rgba(255,255,255,.13);transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .3s ease,box-shadow .35s ease}
.all-projects article>span{margin:16px 0 0;color:#ff777c}
.all-projects h2{margin:8px 0 6px;font-size:clamp(20px,1.55vw,25px);line-height:1.1}
.all-projects p{margin:0;max-width:34ch;font-size:12px;line-height:1.55}

@media(hover:hover) and (pointer:fine){
  .all-projects article:hover{transform:translateY(-5px);box-shadow:none}
  .all-projects article:hover .project-shot{transform:translateY(-3px) scale(1.015);border-color:rgba(255,107,112,.88);box-shadow:0 16px 34px rgba(3,2,18,.42),0 0 0 3px rgba(255,107,112,.1)}
  .all-projects article:hover .project-shot.project-image img{transform:scale(1.055);filter:saturate(1.12) contrast(1.045) brightness(1.035)}
}
@media(max-width:1250px){
  .all-projects{grid-template-columns:repeat(3,minmax(0,1fr))}
  .all-projects article:nth-child(4n+2),.all-projects article:nth-child(4n+4){margin-top:0}
  .all-projects article:nth-child(3n+2){margin-top:38px}
}
@media(max-width:850px){
  .all-projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 18px}
  .all-projects article:nth-child(3n+2){margin-top:0}
  .all-projects article:nth-child(even){margin-top:34px}
}
@media(max-width:520px){
  .all-projects{grid-template-columns:1fr;gap:42px;padding-left:22px;padding-right:22px}
  .all-projects article:nth-child(n){margin-top:0}
  .all-projects .project-shot{width:88%}
}

/* Navigazione mobile uniforme per Progetti, Tech Journal e articoli. */
@media(max-width:900px){
  .sidebar{height:70px;padding:0 22px;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(44,41,72,.16)}
  .sidebar .logo{position:relative;z-index:33;width:158px}
  .sidebar nav{
    position:fixed;
    inset:auto;
    top:0;
    left:0;
    width:100vw;
    width:100dvw;
    height:100vh;
    height:100dvh;
    max-height:none;
    z-index:31;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    margin:0;
    padding:112px 24px 38px;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:
      radial-gradient(circle at 100% 0,rgba(93,88,214,.16),transparent 40%),
      linear-gradient(145deg,#fbfbff 0,#f0f1fa 100%);
  }
  .sidebar nav:before{
    content:"NAVIGAZIONE";
    display:block;
    width:min(100%,420px);
    margin:0 auto 13px;
    color:#77748a;
    font:700 9px var(--mono);
    letter-spacing:.14em;
  }
  .sidebar nav a,
  .sidebar nav a.current{
    display:flex;
    align-items:center;
    width:min(100%,420px);
    min-height:60px;
    margin:0 auto;
    padding:0;
    border:0;
    border-bottom:1px solid rgba(44,41,72,.16);
    color:#29273e;
    font:600 clamp(18px,5vw,22px) var(--sans);
    letter-spacing:-.02em;
    text-transform:none;
  }
  .sidebar nav a:first-of-type{border-top:1px solid rgba(44,41,72,.16)}
  .sidebar nav a:hover,.sidebar nav a.current{padding-left:0;color:#38348d}
  .sidebar nav a.current:after{content:"";width:7px;height:7px;margin-left:auto;border-radius:50%;background:#ed1c24}
  .sidebar nav a span{display:inline-block;width:48px;color:#ed1c24;font:700 9px var(--mono);letter-spacing:.1em}
  .menu{position:relative;z-index:33;width:40px;height:40px;padding:0;align-items:flex-end;justify-content:center;cursor:pointer}
  .menu i{display:block;width:24px;height:1px;background:#38348d;transition:transform .25s ease,width .25s ease}
  .menu i:last-child{width:16px}
  .menu[aria-expanded="true"] i:first-child{width:24px;transform:translateY(4px) rotate(45deg)}
  .menu[aria-expanded="true"] i:last-child{width:24px;transform:translateY(-4px) rotate(-45deg)}
}
@media(max-width:380px){
  .sidebar nav{padding-left:18px;padding-right:18px}
  .sidebar nav a,.sidebar nav a.current{min-height:56px}
}
