:root{
      --soil:#111614;
      --forest:#16201d;
      --leaf:#87936d;
      --sage:#bcc7a5;
      --moss:#42513b;
      --bark:#8a755b;
      --cream:#f2ede2;
      --muted:rgba(242,237,226,.72);
      --thin:rgba(242,237,226,.10);
      --shadow:0 28px 90px rgba(0,0,0,.34);
      --radius:24px;
      --mx:50vw;
      --my:42vh;
      --scroll:0;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth;background:var(--soil)}
    body{margin:0;background:var(--soil);color:var(--cream);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.75;letter-spacing:.01em;overflow-x:hidden;--nav-y:-18px}
    body::before{content:"";position:fixed;inset:0;z-index:-5;background:radial-gradient(circle at var(--mx) var(--my),rgba(188,199,165,.30),rgba(135,147,109,.14) 18%,transparent 42%),radial-gradient(circle at 18% 12%,rgba(84,103,90,.26),transparent 32%),radial-gradient(circle at 82% 18%,rgba(76,93,101,.20),transparent 30%),radial-gradient(circle at 50% 120%,rgba(138,117,91,.16),transparent 36%),linear-gradient(180deg,#16201d 0%,#131a18 36%,#101614 68%,#18211d 100%);transition:background-position .25s ease, filter .3s ease}
    body::after{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,black,transparent 84%);transform:translateY(calc(var(--scroll) * -18px))}
    .grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
    .flora-canvas{position:fixed;inset:0;z-index:-4;pointer-events:none;opacity:.96}
    .flora-field{position:fixed;left:var(--mx);top:var(--my);z-index:-4;width:46vmax;height:46vmax;pointer-events:none;transform:translate(-50%,-50%);border-radius:44% 56% 61% 39% / 46% 41% 59% 54%;background:radial-gradient(circle at 42% 42%,rgba(188,199,165,.26),rgba(146,164,129,.16) 28%,rgba(66,81,59,.08) 52%,transparent 72%);filter:blur(18px);mix-blend-mode:screen;animation:morphField 11s ease-in-out infinite, breatheField 5.4s ease-in-out infinite}
    .flora-field::before,.flora-field::after{content:"";position:absolute;display:block;border-radius:50%;filter:blur(24px);opacity:.55}
    .flora-field::before{width:58%;height:58%;left:-8%;top:10%;background:radial-gradient(circle,rgba(123,155,130,.24),transparent 70%);animation:orbitBlob 16s linear infinite}
    .flora-field::after{width:54%;height:54%;right:-4%;bottom:8%;background:radial-gradient(circle,rgba(117,151,160,.18),transparent 70%);animation:orbitBlob 21s linear infinite reverse}
    .scroll-progress{position:fixed;left:0;top:0;z-index:150;width:calc(var(--scroll) * 100%);height:3px;background:linear-gradient(90deg,#8f9d6c,#d7d0bd);box-shadow:0 0 22px rgba(168,179,143,.45);transform-origin:left}
    .spark{position:absolute;inset:auto;pointer-events:none}
    .nav-inner{animation:navDrop .75s cubic-bezier(.2,.8,.2,1) both}
    .brand-mark{position:relative;overflow:hidden}.brand-mark::after{content:"";position:absolute;inset:-40%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.34),transparent);transform:translateX(-120%) rotate(12deg);animation:sheen 4.8s ease-in-out infinite}
    h1{animation:titleRise 1s cubic-bezier(.2,.8,.2,1) both}.hero-copy{animation:fadeSide .95s cubic-bezier(.2,.8,.2,1) .18s both}
    h1 span{position:relative;text-shadow:0 28px 90px rgba(168,179,143,.14)}
    h1 span::after{content:"";position:absolute;left:0;right:14%;bottom:.06em;height:.09em;background:linear-gradient(90deg,rgba(168,179,143,.72),rgba(215,208,189,.08));transform-origin:left;transform:scaleX(.08);opacity:.55;animation:underlineGrow 1.3s cubic-bezier(.2,.8,.2,1) .45s forwards}
    .panel,.project,.card,.step{will-change:transform;transform-style:preserve-3d}
    .project,.card,.step,.panel{position:relative;overflow:hidden}
    .project::before,.card::before,.step::before,.panel::before{pointer-events:none}
    .project::before,.card::after,.step::after,.panel::after{content:"";position:absolute;inset:-1px;border-radius:inherit;opacity:0;background:radial-gradient(circle at var(--local-x,50%) var(--local-y,50%),rgba(191,202,171,.22),transparent 34%);transition:opacity .28s ease;z-index:0}
    .project:hover::before,.card:hover::after,.step:hover::after,.panel:hover::after{opacity:1}
    .project > *,.card > *,.step > *,.panel > *{position:relative;z-index:1}
    .project{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(0)}
    .project:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px)}
    .btn{position:relative;overflow:hidden}.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(255,255,255,.26),transparent);transform:translateX(-130%);transition:transform .72s ease}.btn:hover::after{transform:translateX(130%)}
    .reveal{filter:blur(10px);clip-path:inset(0 0 18% 0 round 16px)}.reveal.in{filter:blur(0);clip-path:inset(0 0 0 0 round 0)}
    .project:nth-child(3n+1),.card:nth-child(3n+2){animation:softDrift 8s ease-in-out infinite}.project:nth-child(3n+2),.card:nth-child(3n+1){animation:softDrift 9s ease-in-out -3s infinite reverse}
    @keyframes morphField{0%,100%{border-radius:44% 56% 61% 39% / 46% 41% 59% 54%;transform:translate(-50%,-50%) rotate(0deg) scale(1)}50%{border-radius:63% 37% 39% 61% / 55% 66% 34% 45%;transform:translate(-50%,-50%) rotate(10deg) scale(1.08)}}
    @keyframes breatheField{0%,100%{opacity:.56}50%{opacity:.86}}
    @keyframes navDrop{from{opacity:0;transform:translateY(-22px) scale(.98)}to{opacity:1;transform:none}}
    @keyframes titleRise{from{opacity:0;transform:translateY(34px);filter:blur(16px)}to{opacity:1;transform:none;filter:blur(0)}}
    @keyframes fadeSide{from{opacity:0;transform:translateX(24px);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
    @keyframes underlineGrow{to{transform:scaleX(1)}}
    @keyframes sheen{0%,58%{transform:translateX(-130%) rotate(12deg)}72%,100%{transform:translateX(130%) rotate(12deg)}}
    @keyframes softDrift{0%,100%{translate:0 0}50%{translate:0 -5px}}
    @keyframes orbitBlob{0%{transform:translate(0,0) scale(1)}50%{transform:translate(18px,-22px) scale(1.12)}100%{transform:translate(0,0) scale(1)}}

    a{color:inherit;text-decoration:none}
    img{display:block;max-width:100%;height:auto}
    button{font:inherit;color:inherit}
    .container{width:min(1180px,calc(100% - 40px));margin:0 auto}
    .nav{position:fixed;top:0;left:0;right:0;z-index:90;pointer-events:none;padding:24px 0 0}
    .nav-inner{pointer-events:auto;width:min(1180px,calc(100% - 44px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none}
    .brand{display:flex;align-items:center;gap:11px;font-weight:600;letter-spacing:.16em;font-size:12px;text-transform:uppercase;white-space:nowrap}
    .brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:2px;border:1px solid rgba(242,237,226,.25);background:rgba(242,237,226,.04);color:var(--cream);font-weight:600;letter-spacing:.05em}
    .nav-links{display:flex;align-items:center;gap:26px}
    .nav-links a{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:rgba(242,237,226,.76);padding:6px 0;border-radius:0;transition:.25s ease;position:relative}
    .nav-links a:hover{background:transparent;color:var(--cream)}
    .nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:rgba(242,237,226,.66);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
    .nav-links a:hover::after{transform:scaleX(1)}
    .menu-toggle{display:none;border:1px solid var(--thin);background:rgba(242,237,226,.04);border-radius:999px;padding:9px 13px;letter-spacing:.12em;text-transform:uppercase;font-size:11px}
    .wa-float{position:fixed;right:22px;bottom:22px;z-index:80;display:inline-flex;align-items:center;gap:9px;background:#a8b38f;color:#0d1309;padding:13px 18px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 20px 60px rgba(0,0,0,.34);transition:.25s ease}
    .wa-float:hover{transform:translateY(-3px);background:#bfcaab}
    .hero{min-height:100svh;display:grid;align-items:end;padding:156px 0 74px;position:relative;overflow:hidden}
    .hero-orb{position:absolute;border-radius:999px;filter:blur(3px);opacity:.6;animation:float 12s ease-in-out infinite;pointer-events:none}
    .hero-orb.one{width:360px;height:360px;right:5vw;top:17vh;background:radial-gradient(circle,rgba(168,179,143,.22),transparent 65%)}
    .hero-orb.two{width:240px;height:240px;left:4vw;bottom:7vh;background:radial-gradient(circle,rgba(119,97,70,.22),transparent 70%);animation-delay:-5s}
    .eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:rgba(243,239,230,.48);margin:0 0 22px}
    .hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(290px,.52fr);gap:54px;align-items:end}
    h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.02;margin:0}
    h1{font-size:clamp(54px,10vw,138px);max-width:1040px}
    h1 span{display:block;color:#d7d0bd}
    .hero-copy{max-width:520px;justify-self:end;padding-bottom:16px}
    .hero-copy p{margin:0 0 28px;color:var(--muted);font-weight:300;font-size:clamp(15px,1.35vw,18px)}
    .actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:14px 22px;border:1px solid var(--thin);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;transition:.28s ease;cursor:pointer}
    .btn-primary{background:var(--sage);color:#10160c;border-color:rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.22)}
    .btn-primary:hover{background:#bfcaab;transform:translateY(-2px)}
    .btn-ghost{background:rgba(243,239,230,.045);color:rgba(243,239,230,.86)}
    .btn-ghost:hover{background:rgba(243,239,230,.1);transform:translateY(-2px)}
    .section{padding:120px 0;position:relative}
    .section.alt{background:linear-gradient(180deg,rgba(9,13,7,.1),rgba(16,23,13,.76),rgba(9,13,7,.1))}
    .section-head{display:grid;grid-template-columns:.45fr 1fr;gap:44px;margin-bottom:54px;align-items:end}
    .section-head h2{font-size:clamp(34px,5vw,76px)}
    .section-head p:not(.eyebrow){color:var(--muted);font-weight:300;margin:0;max-width:650px}
    .bio-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:28px;align-items:stretch}
    .panel{border:1px solid var(--thin);background:linear-gradient(145deg,rgba(243,239,230,.075),rgba(243,239,230,.028));border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;position:relative}
    .panel.pad{padding:34px}
    .bio-card .panel:first-child p{font-size:clamp(18px,2vw,28px);font-family:"Playfair Display",Georgia,serif;line-height:1.55;color:#dfd8c7;margin:0}
    .words{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
    .pill{border:1px solid rgba(168,179,143,.26);background:rgba(168,179,143,.08);border-radius:999px;padding:9px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#d6d0bd}
    .small-list{display:grid;gap:18px}
    .small-list div{padding-bottom:18px;border-bottom:1px solid rgba(243,239,230,.09)}
    .small-list div:last-child{border-bottom:0;padding-bottom:0}
    .small-list b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:#c4cfab;margin-bottom:7px}
    .small-list span{display:block;color:rgba(243,239,230,.6);font-weight:300}
    .projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
    .project{border:1px solid var(--thin);background:rgba(243,239,230,.045);border-radius:24px;overflow:hidden;cursor:pointer;text-align:left;padding:0;box-shadow:0 16px 48px rgba(0,0,0,.22);transition:.32s ease}
    .project:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px);background:rgba(243,239,230,.07);border-color:rgba(168,179,143,.34);box-shadow:0 30px 90px rgba(0,0,0,.34)}
    .project figure{margin:0;position:relative;aspect-ratio:1.24/1;overflow:hidden;background:#11170d}
    .project img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03);transition:.6s ease}
    .project:hover img{transform:scale(1.04)}
    .project figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(9,13,7,.38))}
    .project-body{padding:22px}
    .project .meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
    .tag{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#c3bea9;border:1px solid rgba(243,239,230,.1);background:rgba(243,239,230,.04);border-radius:999px;padding:5px 8px}
    .project h3{font-size:25px;margin-bottom:8px;color:#f2efe6}
    .project p{margin:0;color:rgba(243,239,230,.62);font-weight:300;font-size:14px;line-height:1.65}
    .cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
    .card{border:1px solid var(--thin);background:rgba(243,239,230,.045);border-radius:22px;padding:24px;min-height:220px;transition:.28s ease}
    .card:hover{transform:translateY(-8px) scale(1.01);background:rgba(243,239,230,.07);border-color:rgba(168,179,143,.34);box-shadow:0 28px 90px rgba(0,0,0,.32)}
    .card h3{font-size:26px;margin-bottom:12px}
    .card p{color:rgba(243,239,230,.61);font-weight:300;margin:0 0 18px;font-size:14px;line-height:1.72}
    .chips{display:flex;gap:8px;flex-wrap:wrap}
    .chip{font-size:11px;color:rgba(243,239,230,.72);background:rgba(168,179,143,.08);border:1px solid rgba(168,179,143,.18);padding:7px 9px;border-radius:999px}
    .steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;counter-reset:step}
    .step{position:relative;border:1px solid var(--thin);border-radius:24px;background:rgba(243,239,230,.04);padding:30px 30px 30px 96px;min-height:170px;transition:.32s ease}
    .step::before{counter-increment:step;content:"0" counter(step);position:absolute;left:28px;top:32px;font-family:"Playfair Display",Georgia,serif;font-size:32px;color:#a8b38f}
    .step h3{font-size:27px;margin-bottom:8px}
    .step p{margin:0;color:rgba(243,239,230,.62);font-weight:300}.step:hover{transform:translateY(-7px);border-color:rgba(168,179,143,.33);background:rgba(243,239,230,.065);box-shadow:0 24px 74px rgba(0,0,0,.27)}
    footer{padding:120px 0 42px;background:linear-gradient(180deg,rgba(8,12,6,0),rgba(8,12,6,.9));position:relative}
    .footer-box{max-width:760px;margin-bottom:84px}
    .footer-box h2{font-size:clamp(36px,5.5vw,82px);margin-bottom:22px}
    .footer-box p{color:rgba(243,239,230,.68);font-weight:300;margin:0 0 28px;max-width:610px}
    .footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:28px;border-top:1px solid var(--thin);padding-top:34px;color:rgba(243,239,230,.55);font-size:14px}
    .footer-grid b{display:block;color:#f2efe6;margin-bottom:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
    .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
    @keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-24px) scale(1.04)}}
    @keyframes pop{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
    @media (max-width:980px){.hero-grid,.section-head,.bio-card{grid-template-columns:1fr}.hero-copy{justify-self:start}.projects,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}
    @media (max-width:720px){.container{width:min(100% - 28px,1180px)}.nav{padding-top:18px}.nav-inner{align-items:flex-start;width:min(100% - 28px,1180px)}.menu-toggle{display:inline-flex}.nav-links{display:none;position:absolute;top:42px;left:14px;right:14px;flex-direction:column;align-items:stretch;gap:0;background:rgba(17,22,20,.92);border:1px solid var(--thin);border-radius:16px;padding:10px 14px;backdrop-filter:blur(18px)}.nav-links.open{display:flex}.nav-links a{padding:14px 0}.nav-links a::after{bottom:6px}.hero{padding-top:132px}.hero-copy p{font-size:15px}.section{padding:86px 0}.projects,.cards{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.wa-float{left:16px;right:16px;bottom:16px;justify-content:center}.footer-box{margin-bottom:60px}.step{padding-left:26px;padding-top:86px}.step::before{left:26px}.brand{letter-spacing:.1em}}
    @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none;filter:none;clip-path:none}.flora-canvas,.flora-field{display:none}}


    /* Header essenziale: menu classico senza barra/pillola. */
    html{scroll-behavior:auto}
    body{overscroll-behavior:none;cursor:default}
    .nav{top:0;padding:24px 0;background:linear-gradient(180deg,rgba(8,12,6,.42),rgba(8,12,6,0));pointer-events:none;transition:padding .35s ease,background .35s ease}
    .nav-inner{width:min(1180px,calc(100% - 40px));padding:0;margin:0 auto;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none}
    .brand{font-family:"Playfair Display",Georgia,serif;font-size:18px;text-transform:none;letter-spacing:.02em;color:#f3efe6;text-shadow:0 12px 32px rgba(0,0,0,.38)}
    .brand span:last-child{display:inline-block;position:relative}
    .brand span:last-child::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:linear-gradient(90deg,rgba(168,179,143,.65),transparent);transform:scaleX(.35);transform-origin:left;opacity:.7;transition:transform .35s ease}
    .brand:hover span:last-child::after{transform:scaleX(1)}
    .brand-mark{width:auto;height:auto;border-radius:0;background:transparent;color:#a8b38f;font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.2em;overflow:visible}
    .brand-mark::after{display:none}
    .nav-links{gap:28px}
    .nav-links a{position:relative;padding:4px 0;border-radius:0;background:transparent;color:rgba(243,239,230,.76);font-size:11px;letter-spacing:.18em;text-shadow:0 10px 28px rgba(0,0,0,.35)}
    .nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:#a8b38f;transform:scaleX(0);transform-origin:right;transition:transform .34s cubic-bezier(.2,.8,.2,1);opacity:.75}
    .nav-links a:hover{background:transparent;color:#f3efe6}
    .nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
    .menu-toggle{background:transparent;border:0;padding:0;color:#f3efe6}

    /* Background vivo: la massa verde si deforma e segue l'utente. */
    body::before{background:radial-gradient(closest-side at var(--mx) var(--my),rgba(194,207,172,.38),rgba(143,157,108,.20) 35%,transparent 72%),radial-gradient(circle at calc(var(--mx) + 14vw) calc(var(--my) - 10vh),rgba(91,116,64,.18),transparent 32vmax),radial-gradient(circle at calc(var(--mx) - 18vw) calc(var(--my) + 12vh),rgba(119,97,70,.16),transparent 26vmax),linear-gradient(180deg,#16201d 0%,#131a18 52%,#101614 100%);transition:none;filter:saturate(1.04)}
    .flora-field{width:48vmax;height:48vmax;filter:blur(18px) saturate(1.2);transition:width .45s ease,height .45s ease;mix-blend-mode:screen}
    body.pointer-live .flora-field{width:56vmax;height:56vmax}
    body.pointer-live .grain{opacity:.16}
    .hero-orb{mix-blend-mode:screen}

    /* Animazioni più teatrali ma pulite. */
    .reveal{opacity:0;transform:translateY(34px) scale(.985);filter:blur(16px);clip-path:inset(0 0 20% 0 round 22px);transition:opacity .95s cubic-bezier(.16,1,.3,1),transform .95s cubic-bezier(.16,1,.3,1),filter .95s cubic-bezier(.16,1,.3,1),clip-path .95s cubic-bezier(.16,1,.3,1)}
    .reveal.in{opacity:1;transform:none;filter:blur(0);clip-path:inset(0 0 0 0 round 0)}
    .section-head.reveal.in h2{animation:textBloom .95s cubic-bezier(.16,1,.3,1) both}
    .section-head.reveal.in .eyebrow{animation:letterFloat .85s cubic-bezier(.16,1,.3,1) both}
    .card.reveal.in,.step.reveal.in,.panel.reveal.in,.project.reveal.in{animation:cardBloom .9s cubic-bezier(.16,1,.3,1) both}
    .card,.step,.panel,.project{transition:transform .45s cubic-bezier(.16,1,.3,1),border-color .32s ease,background .32s ease,box-shadow .45s ease}
    .card::before,.panel::before,.project::before{content:"";position:absolute;inset:-60%;opacity:.08;background:conic-gradient(from 140deg,transparent,rgba(215,208,189,.42),transparent 35%,rgba(168,179,143,.26),transparent 70%);transform:rotate(0deg);transition:opacity .4s ease;z-index:0;pointer-events:none}
    .card:hover::before,.panel:hover::before,.project:hover::before{opacity:.16;animation:slowSpin 5.5s linear infinite}
    .project img{transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .8s ease}
    .project:hover img{transform:scale(1.075) rotate(.45deg);filter:saturate(1.04) contrast(1.07)}
    .btn:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 24px 70px rgba(0,0,0,.35)}
    .pill{transition:transform .32s cubic-bezier(.16,1,.3,1),background .32s ease,border-color .32s ease}.pill:hover{transform:translateY(-4px);background:rgba(168,179,143,.16);border-color:rgba(168,179,143,.45)}
    .footer-box.reveal.in{animation:footerLift 1s cubic-bezier(.16,1,.3,1) both}
    @keyframes textBloom{from{opacity:0;letter-spacing:-.07em;transform:translateY(18px);filter:blur(10px)}to{opacity:1;letter-spacing:-.025em;transform:none;filter:blur(0)}}
    @keyframes letterFloat{from{opacity:0;transform:translateY(12px);letter-spacing:.45em}to{opacity:1;transform:none;letter-spacing:.28em}}
    @keyframes cardBloom{0%{opacity:0;transform:translateY(38px) rotateX(8deg) scale(.97);filter:blur(16px)}65%{opacity:1;transform:translateY(-4px) rotateX(0) scale(1.006);filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
    @keyframes slowSpin{to{transform:rotate(360deg)}}
    @keyframes footerLift{from{opacity:0;transform:translateY(42px) scale(.98);filter:blur(14px)}to{opacity:1;transform:none;filter:blur(0)}}
    @media (max-width:980px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media (max-width:720px){.nav{padding:18px 0}.nav-inner{width:min(100% - 28px,1180px);position:relative;align-items:center}.nav-links{top:42px;left:0;right:0;background:rgba(17,22,20,.92);border:1px solid var(--thin);border-radius:18px;padding:14px 18px;backdrop-filter:blur(18px)}.nav-links a{padding:12px 0}.brand span:last-child{font-size:17px}.hero{padding-top:118px}.cards{grid-template-columns:1fr}}

    @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal,.reveal.in{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}.flora-canvas,.flora-field{display:none!important}}


    /* Progetti: percorso verticale, non mosaico. Ogni progetto diventa una scena narrativa. */
    #lavori{overflow:hidden;background:linear-gradient(180deg,rgba(16,22,20,.04),rgba(20,28,24,.62) 18%,rgba(16,22,20,.06) 100%)}
    #lavori .section-head{margin-bottom:clamp(46px,8vw,110px)}
    .projects{display:block;position:relative;counter-reset:project;margin-top:clamp(36px,7vw,84px)}
    .projects::before{content:"";position:absolute;left:50%;top:-40px;bottom:-60px;width:1px;background:linear-gradient(180deg,transparent,rgba(188,199,165,.20),rgba(242,237,226,.10),transparent);opacity:.45;pointer-events:none}
    .project-story{animation:none!important;min-height:clamp(560px,78vh,860px);display:grid;grid-template-columns:minmax(0,1.06fr) minmax(320px,.78fr);gap:clamp(28px,5vw,86px);align-items:center;margin:0 0 clamp(76px,14vh,152px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:default;isolation:isolate;overflow:visible;transform:translateY(68px);opacity:0;filter:blur(14px);clip-path:none;transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter 1s cubic-bezier(.16,1,.3,1)}
    .project-story.in{animation:none!important;opacity:1;filter:blur(0);clip-path:none;transform:translateY(0)}
    .project-story.reverse{grid-template-columns:minmax(320px,.78fr) minmax(0,1.06fr)}
    .project-story.reverse .project-visual{grid-column:2}.project-story.reverse .project-copy{grid-column:1;grid-row:1;text-align:right;align-items:flex-end}.project-story.reverse .project-copy p{margin-left:auto}.project-story.reverse .meta,.project-story.reverse .chips,.project-story.reverse .project-actions{justify-content:flex-end}
    .project-story::before,.project-story::after{display:none!important}
    .project-story:hover{transform:none;background:transparent;border-color:transparent;box-shadow:none}
    .project-visual{position:relative;min-height:clamp(360px,54vw,640px);transform:translate3d(0,calc(var(--story-shift,0px) * -.24),0);transition:transform .24s linear;z-index:2}
    .project-visual figure{position:relative;height:100%;min-height:inherit;margin:0;border-radius:0;overflow:hidden;background:#141918;box-shadow:0 32px 96px rgba(0,0,0,.34);transform:perspective(1200px) rotateY(calc((var(--story-progress,0) - .5) * -5deg)) rotateX(calc((var(--story-progress,0) - .5) * 2deg));transition:transform .18s linear,box-shadow .45s ease}
    .project-story.reverse .project-visual figure{transform:perspective(1200px) rotateY(calc((var(--story-progress,0) - .5) * 5deg)) rotateX(calc((var(--story-progress,0) - .5) * 2deg))}
    .project-visual img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.98) contrast(1.02) brightness(.97);transform:scale(calc(1.04 - var(--story-progress,0) * .018)) translateY(calc(var(--story-shift,0px) * .12));transition:filter .7s ease,transform .18s linear}
    .project-story.story-active .project-visual img{filter:saturate(1.03) contrast(1.05) brightness(1)}
    .project-story:hover .project-visual img{transform:scale(calc(1.04 - var(--story-progress,0) * .018)) translateY(calc(var(--story-shift,0px) * .12));filter:saturate(1.03) contrast(1.05) brightness(1)}
    .project-visual figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,8,.03),rgba(8,10,8,.22)),radial-gradient(circle at 12% 8%,rgba(242,237,226,.08),transparent 28%)}
    .project-number{position:absolute;z-index:3;left:clamp(-14px,-1.2vw,-4px);top:clamp(-26px,-2vw,-10px);font-family:"Playfair Display",Georgia,serif;font-size:clamp(64px,9vw,136px);line-height:.82;color:rgba(242,237,226,.18);text-shadow:0 20px 80px rgba(0,0,0,.42);transform:translateY(calc(var(--story-shift,0px) * -.18));pointer-events:none}
    .project-copy{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;transform:translate3d(0,calc(var(--story-shift,0px) * .20),0);transition:transform .24s linear}
    .project-copy .meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1) .08s,transform .7s cubic-bezier(.16,1,.3,1) .08s}
    .project-copy h3{font-size:clamp(34px,5vw,76px);line-height:.98;margin:0 0 18px;color:#f2ede2;text-wrap:balance;opacity:0;transform:translateY(26px);filter:blur(8px);transition:opacity .95s cubic-bezier(.16,1,.3,1) .18s,transform .95s cubic-bezier(.16,1,.3,1) .18s,filter .95s cubic-bezier(.16,1,.3,1) .18s;overflow:visible}
    .project-copy p{max-width:560px;margin:0 0 24px;color:rgba(242,237,226,.72);font-size:clamp(15px,1.35vw,18px);line-height:1.85;font-weight:300;opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity .9s cubic-bezier(.16,1,.3,1) .33s,transform .9s cubic-bezier(.16,1,.3,1) .33s,filter .9s cubic-bezier(.16,1,.3,1) .33s}
    .project-copy .chips{margin-bottom:28px;opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.16,1,.3,1) .48s,transform .75s cubic-bezier(.16,1,.3,1) .48s}
    .project-copy .project-actions{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.16,1,.3,1) .62s,transform .75s cubic-bezier(.16,1,.3,1) .62s}
    .project-story .tag{background:transparent;border:1px solid rgba(242,237,226,.16);color:rgba(242,237,226,.72)}
    .project-story .chip{background:rgba(242,237,226,.03);border:1px solid rgba(242,237,226,.12);color:rgba(242,237,226,.74)}
    .project-story.in .project-copy .meta,.project-story.in .project-copy h3,.project-story.in .project-copy p,.project-story.in .project-copy .chips,.project-story.in .project-copy .project-actions{opacity:1;transform:none;filter:blur(0)}
    .project-story.in .project-visual{animation:visualReveal 1.15s cubic-bezier(.16,1,.3,1) both}.project-story.reverse.in .project-visual{animation:visualRevealReverse 1.15s cubic-bezier(.16,1,.3,1) both}
    .project-actions{display:flex;gap:12px;flex-wrap:wrap}.project-actions .btn{white-space:nowrap}
    @keyframes visualReveal{0%{opacity:0;transform:translateX(-64px) translateY(24px);filter:blur(18px)}68%{opacity:1;transform:translateX(8px) translateY(-4px);filter:blur(0)}100%{opacity:1;transform:translate3d(0,calc(var(--story-shift,0px) * -.24),0);filter:blur(0)}}
    @keyframes visualRevealReverse{0%{opacity:0;transform:translateX(64px) translateY(24px);filter:blur(18px)}68%{opacity:1;transform:translateX(-8px) translateY(-4px);filter:blur(0)}100%{opacity:1;transform:translate3d(0,calc(var(--story-shift,0px) * -.24),0);filter:blur(0)}}
    @media (max-width:980px){.projects::before{left:16px}.project-story,.project-story.reverse{grid-template-columns:1fr;min-height:auto;padding:0;margin-bottom:88px}.project-story.reverse .project-visual,.project-story.reverse .project-copy{grid-column:auto;grid-row:auto;text-align:left;align-items:flex-start}.project-story.reverse .meta,.project-story.reverse .chips,.project-story.reverse .project-actions{justify-content:flex-start}.project-visual{min-height:clamp(280px,58vw,500px)}.project-copy h3{font-size:clamp(34px,8vw,62px)}}
    @media (max-width:720px){#lavori .section-head{margin-bottom:42px}.project-story{margin-bottom:72px}.project-visual{min-height:260px}.project-number{font-size:56px;left:0;top:-12px;color:rgba(242,237,226,.22)}.project-copy{padding-top:12px}.project-copy .meta{margin-bottom:14px}.project-copy h3{margin-bottom:16px}.project-actions .btn{width:100%;padding-inline:16px}.projects::before{display:none}}
    @media (prefers-reduced-motion:reduce){.project-story,.project-story.in,.project-visual,.project-copy,.project-copy .meta,.project-copy h3,.project-copy p,.project-copy .chips,.project-copy .project-actions,.project-visual figure,.project-visual img{animation:none!important;transform:none!important;transition:none!important;opacity:1!important;filter:none!important;clip-path:none!important}}

/* === v6: pulizia visiva, progetti leggibili, sfondo dinamico === */
:root{
  --soil:#151b18;
  --forest:#1a231f;
  --cream:#f2ede2;
  --sage:#bcc7a5;
}
html{background:#151b18}
body{background:#151b18;overscroll-behavior:none}
body::before{
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(198,207,177,.36), rgba(134,151,119,.18) 22%, transparent 46%),
    radial-gradient(circle at calc(100% - var(--mx)) calc(var(--my) + 10vh), rgba(75,103,111,.18), transparent 34%),
    radial-gradient(circle at 16% 18%, rgba(95,123,100,.24), transparent 38%),
    radial-gradient(circle at 82% 72%, rgba(139,116,88,.15), transparent 34%),
    linear-gradient(135deg,#18211e 0%,#121917 42%,#1c241f 100%)!important;
  transition:none!important;
}
body::after{opacity:.13!important;background-size:84px 84px!important}
.flora-canvas{opacity:1!important}
.flora-field{opacity:.95!important;filter:blur(18px) saturate(1.12)!important}
.grain{opacity:.10!important}
body.pointer-live .grain{opacity:.13!important}

/* Header: menu classico, niente barra/pillola */
.nav{background:linear-gradient(180deg,rgba(18,25,22,.42),rgba(18,25,22,0))!important}
.nav-inner{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:0!important;padding:0!important}

/* Sfondo animato ben visibile ma naturale */
.bg-ribbon{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.bg-ribbon span{position:absolute;width:44vmax;height:10vmax;border-radius:999px;opacity:.14;filter:blur(20px);background:linear-gradient(90deg,transparent,rgba(188,199,165,.58),rgba(91,121,109,.36),transparent);transform:rotate(-18deg);animation:ribbonFlow 18s linear infinite;mix-blend-mode:screen}
.bg-ribbon span:nth-child(1){left:-18vmax;top:18vh;animation-duration:24s}
.bg-ribbon span:nth-child(2){right:-20vmax;top:48vh;animation-duration:28s;animation-direction:reverse;opacity:.11}
.bg-ribbon span:nth-child(3){left:20vw;bottom:8vh;animation-duration:32s;opacity:.09}
@keyframes ribbonFlow{0%{transform:translate3d(-10vw,0,0) rotate(-18deg) scaleX(.8)}50%{transform:translate3d(12vw,-4vh,0) rotate(-10deg) scaleX(1.12)}100%{transform:translate3d(-10vw,0,0) rotate(-18deg) scaleX(.8)}}
.cursor-pulse{position:fixed;width:90px;height:90px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,rgba(188,199,165,.24),rgba(188,199,165,.08) 38%,transparent 70%);mix-blend-mode:screen}

/* Progetti: niente numeri, niente box verdi/semitrasparenti, immagini rettangolari */
.projects::before,.project-number{display:none!important}
.project-story,.project-story:hover{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;overflow:visible!important;transform:none}
.project-story::before,.project-story::after{display:none!important;content:none!important}
.project-story{min-height:min(820px,88vh)!important;grid-template-columns:minmax(0,1.18fr) minmax(300px,.64fr)!important;gap:clamp(28px,5.2vw,92px)!important;margin-bottom:clamp(92px,15vh,170px)!important}
.project-story.reverse{grid-template-columns:minmax(300px,.64fr) minmax(0,1.18fr)!important}
.project-story:first-child{grid-template-columns:minmax(0,1.34fr) minmax(300px,.52fr)!important}
.project-visual{min-height:0!important;transform:translate3d(0,calc(var(--story-shift,0px) * -.14),0)!important}
.project-visual figure{height:auto!important;min-height:0!important;aspect-ratio:16/9;border-radius:0!important;background:rgba(242,237,226,.035)!important;border:1px solid rgba(242,237,226,.10)!important;overflow:hidden!important;box-shadow:0 34px 100px rgba(0,0,0,.36)!important}
.project-visual img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;transform:none!important;filter:contrast(1.04) saturate(1.03) brightness(1)!important}
.project-visual figure::after{background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.08))!important}
.project-copy h3{font-size:clamp(36px,4.8vw,72px)!important;line-height:1!important;overflow:visible!important;word-break:normal!important;hyphens:none!important;text-wrap:balance}
.project-copy p{color:rgba(242,237,226,.76)!important}
.project-copy .chip,.project-copy .tag{background:transparent!important;border-color:rgba(242,237,226,.18)!important;color:rgba(242,237,226,.75)!important}
.project:hover{transform:none!important}
.project:hover img{transform:none!important}

/* Approccio: niente box/card; diventa sezione editoriale pulita */
.steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(28px,5vw,80px)!important;border-top:1px solid rgba(242,237,226,.16);padding-top:34px}
.step{min-height:auto!important;padding:0 0 26px 0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:1px solid rgba(242,237,226,.12)!important;overflow:visible!important}
.step::before{position:static!important;display:block;margin-bottom:18px;font-size:13px!important;font-family:Inter,system-ui,sans-serif!important;letter-spacing:.22em;text-transform:uppercase;color:rgba(188,199,165,.72)!important}
.step::after{display:none!important}
.step:hover{background:transparent!important;border-color:rgba(242,237,226,.24)!important;box-shadow:none!important;transform:translateY(-4px)!important}
.step h3{font-size:clamp(30px,3vw,44px)!important}
.step p{color:rgba(242,237,226,.72)!important}

@media (max-width:980px){
  .project-story,.project-story.reverse,.project-story:first-child{grid-template-columns:1fr!important;min-height:auto!important;gap:28px!important;margin-bottom:96px!important}
  .project-story.reverse .project-visual,.project-story.reverse .project-copy{grid-column:auto!important;grid-row:auto!important;text-align:left!important;align-items:flex-start!important}
  .project-story.reverse .meta,.project-story.reverse .chips,.project-story.reverse .project-actions{justify-content:flex-start!important}
  .project-visual figure{aspect-ratio:16/10}
  .steps{grid-template-columns:1fr!important}
}
@media (max-width:720px){
  .project-visual figure{aspect-ratio:16/11}
  .project-copy h3{font-size:clamp(34px,11vw,54px)!important}
  .project-actions .btn{width:100%}
  .bg-ribbon span{opacity:.09}
}
@media (prefers-reduced-motion:reduce){.bg-ribbon,.cursor-pulse{display:none!important}}


/* === v7 webcopy + approccio editoriale === */
.hero-copy p{font-size:clamp(16px,1.45vw,20px);color:rgba(242,237,226,.78)}
#chi-sono .panel{box-shadow:none}
.about-editorial .panel{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none;overflow:visible}
.about-editorial{gap:clamp(34px,6vw,90px);align-items:start}
.info-editorial .small-list{border-top:1px solid rgba(242,237,226,.14)}
.info-editorial .small-list div{padding:24px 0;border-bottom:1px solid rgba(242,237,226,.12)}
.info-editorial .small-list b{color:#f2ede2}
.info-editorial .small-list span{color:rgba(242,237,226,.72)}
.service-clean .card{min-height:190px}
.service-clean .card .chips{display:none}
.approach-section{background:linear-gradient(180deg,rgba(20,28,24,.56),rgba(17,22,20,.10))}
.approach-steps{counter-reset:none!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(34px,5vw,82px)!important;border-top:1px solid rgba(242,237,226,.16);padding-top:40px}
.approach-steps .step{counter-increment:none!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;min-height:auto!important;padding:0 0 28px 0!important;border-bottom:1px solid rgba(242,237,226,.12)!important;overflow:visible!important}
.approach-steps .step::before,.approach-steps .step::after{display:none!important;content:none!important}
.approach-steps .step h3{font-size:clamp(30px,3.3vw,48px)!important;margin-bottom:14px;color:#f2ede2}
.approach-steps .step p{font-size:clamp(15px,1.25vw,17px);line-height:1.85;color:rgba(242,237,226,.72)!important;max-width:620px}
.approach-steps .step:hover{transform:translateY(-5px)!important;background:transparent!important;box-shadow:none!important;border-color:rgba(188,199,165,.35)!important}
.step::before{display:none!important;content:none!important}

@media (max-width:980px){
  .approach-steps{grid-template-columns:1fr!important}
  .about-editorial{grid-template-columns:1fr!important}
}


/* === v8 mobile fix + WOW background: stabilità prima di tutto === */

/* Evita flicker: i progetti narrativi non devono ereditare animazioni hover generiche */
.project-story,
.project-story:hover,
.project-story.in,
.project-story.story-active{
  transform:none!important;
  animation:none!important;
  will-change:opacity!important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  contain:layout paint;
}
.project-story.project::before,
.project-story.project::after{
  display:none!important;
}
.project-story .project-visual,
.project-story .project-visual figure,
.project-story .project-visual img,
.project-story .project-copy{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-style:flat!important;
}
.project-story .project-visual{
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
}
.project-story .project-visual figure{
  transform:none!important;
  transition:box-shadow .45s ease, border-color .45s ease!important;
}
.project-story .project-visual img{
  transform:none!important;
  transition:filter .45s ease!important;
}
.project-story .project-copy{
  transform:none!important;
}

/* Reveal più stabile: niente blur pesante sui progetti, solo movimento pulito */
.project-story.reveal{
  opacity:0;
  filter:none!important;
  clip-path:none!important;
  transform:translateY(38px)!important;
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1)!important;
}
.project-story.reveal.in{
  opacity:1!important;
  transform:none!important;
}

/* Immagini progetti: desktop grandi, mobile stabili, niente tagli strani */
.project-visual figure{
  isolation:isolate;
}
.project-visual img{
  image-rendering:auto;
}
.project-story:first-child .project-visual figure{
  aspect-ratio:16/9!important;
}
.project-story:first-child .project-copy h3{
  font-size:clamp(34px,4.2vw,66px)!important;
}

/* Approccio resta senza box */
.steps{
  background:transparent!important;
}
.step,
.step:hover{
  background:transparent!important;
  box-shadow:none!important;
}

/* Background WOW: forme botaniche/organiche visibili, non fluo */
.wow-bg{
  position:fixed;
  inset:0;
  z-index:-3;
  pointer-events:none;
  overflow:hidden;
}
.wow-bg span{
  position:absolute;
  display:block;
  width:36vmax;
  height:36vmax;
  border-radius:45% 55% 62% 38% / 42% 44% 56% 58%;
  filter:blur(34px);
  opacity:.18;
  mix-blend-mode:screen;
  transform:translate3d(0,0,0);
  animation:wowBlob 22s ease-in-out infinite;
}
.wow-bg span:nth-child(1){
  left:-10vmax;
  top:8vh;
  background:radial-gradient(circle,rgba(190,204,170,.48),rgba(82,116,89,.14) 54%,transparent 72%);
}
.wow-bg span:nth-child(2){
  right:-12vmax;
  top:34vh;
  background:radial-gradient(circle,rgba(102,134,139,.34),rgba(75,102,96,.14) 58%,transparent 74%);
  animation-duration:28s;
  animation-direction:reverse;
}
.wow-bg span:nth-child(3){
  left:22vw;
  bottom:-18vmax;
  background:radial-gradient(circle,rgba(151,126,93,.30),rgba(126,143,105,.12) 54%,transparent 74%);
  animation-duration:32s;
}
.wow-bg span:nth-child(4){
  right:20vw;
  top:-18vmax;
  background:radial-gradient(circle,rgba(207,215,185,.24),rgba(79,107,83,.10) 54%,transparent 76%);
  animation-duration:36s;
  animation-delay:-10s;
}

@keyframes wowBlob{
  0%,100%{
    transform:translate3d(0,0,0) rotate(0deg) scale(1);
    border-radius:45% 55% 62% 38% / 42% 44% 56% 58%;
  }
  33%{
    transform:translate3d(8vw,-5vh,0) rotate(9deg) scale(1.12);
    border-radius:61% 39% 42% 58% / 52% 66% 34% 48%;
  }
  66%{
    transform:translate3d(-5vw,7vh,0) rotate(-7deg) scale(.94);
    border-radius:38% 62% 54% 46% / 60% 38% 62% 40%;
  }
}

/* Hero più sorprendente: ingresso in strati */
.hero::before{
  content:"";
  position:absolute;
  inset:8vh 4vw auto auto;
  width:min(42vw,560px);
  height:min(42vw,560px);
  border:1px solid rgba(242,237,226,.10);
  border-radius:48% 52% 44% 56% / 50% 43% 57% 50%;
  opacity:.42;
  transform:rotate(-10deg);
  animation:heroHalo 16s ease-in-out infinite;
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  left:6vw;
  bottom:10vh;
  width:min(28vw,380px);
  height:min(28vw,380px);
  border-radius:50%;
  background:radial-gradient(circle,rgba(188,199,165,.13),transparent 68%);
  filter:blur(12px);
  animation:heroGlow 10s ease-in-out infinite;
  pointer-events:none;
}
@keyframes heroHalo{
  0%,100%{transform:rotate(-10deg) scale(1);border-radius:48% 52% 44% 56% / 50% 43% 57% 50%}
  50%{transform:rotate(8deg) scale(1.08);border-radius:62% 38% 58% 42% / 42% 60% 40% 58%}
}
@keyframes heroGlow{
  0%,100%{opacity:.26;transform:translateY(0) scale(1)}
  50%{opacity:.58;transform:translateY(-18px) scale(1.12)}
}

/* Piccoli dettagli: pulsanti e testi con effetto premium ma leggibile */
.btn{
  transform:translateZ(0);
}
.btn:hover{
  filter:saturate(1.05);
}
.section-head h2,
.hero h1{
  text-wrap:balance;
}

/* Mobile: niente parallax scroll-linked nei progetti, niente flicker */
@media (max-width:760px){
  body{
    overflow-x:hidden;
    overscroll-behavior-y:auto!important;
  }
  .project-story,
  .project-story:hover,
  .project-story.in,
  .project-story.reveal,
  .project-story.reveal.in{
    display:block!important;
    min-height:auto!important;
    margin-bottom:88px!important;
    transform:none!important;
    animation:none!important;
    filter:none!important;
    contain:content;
  }
  .project-visual,
  .project-visual figure,
  .project-visual img,
  .project-copy{
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
  .project-visual{
    margin-bottom:24px;
  }
  .project-visual figure,
  .project-story:first-child .project-visual figure{
    aspect-ratio:16/11!important;
    box-shadow:0 22px 54px rgba(0,0,0,.32)!important;
  }
  .project-visual img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .project-copy .meta,
  .project-copy h3,
  .project-copy p,
  .project-copy .chips,
  .project-copy .project-actions{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:opacity .55s ease, transform .55s ease!important;
  }
  .project-copy h3,
  .project-story:first-child .project-copy h3{
    font-size:clamp(34px,12vw,50px)!important;
    line-height:1.02!important;
  }
  .project-copy p{
    font-size:15px!important;
    line-height:1.75!important;
  }
  .wow-bg span{
    filter:blur(28px);
    opacity:.14;
  }
  .bg-ribbon span{
    opacity:.08!important;
  }
  .flora-canvas{
    opacity:.78!important;
  }
  .cursor-pulse{
    display:none!important;
  }
}

/* Riduzione movimento rispettata */
@media (prefers-reduced-motion:reduce){
  .wow-bg,
  .bg-ribbon,
  .hero::before,
  .hero::after{
    display:none!important;
  }
}
