/* HUB casi studio: carte 3D (video 1) */
html:has(body.hub),html:has(body.hub-3d),html:has(body.works){scroll-behavior:auto!important}
.hub-main{position:relative}
.hub-pin{position:relative;padding:clamp(110px,16vh,170px) var(--gutter,24px) 60px}
.hub-stage{position:relative;max-width:1280px;margin:0 auto}
.hub-h1{margin:0;font-weight:700;letter-spacing:-.035em;line-height:1.02;font-size:clamp(34px,7vw,64px)}
.hub-h1 span{display:block}.hub-h1 .r{color:#fff}
.hub-sub{margin:20px 0 0;max-width:420px;color:#cdd2e2;font-size:15px;line-height:1.6}.hub-sub b{display:none}
.hub-scene,.hub-glow,.hub-lst .hub-k,.hub-desc{display:none}
.hub-wall{margin:30px 0}.hub-wall h2{margin:0;font-weight:700;font-size:clamp(26px,4vw,44px);letter-spacing:-.02em}.hub-wall p{color:#cdd2e2;max-width:480px;line-height:1.6}
.hub-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.hub-li{display:block;text-decoration:none;color:#fff;border:1px solid var(--line,rgba(255,255,255,.12));background:rgba(45,107,255,.05);padding:22px;border-radius:6px}
.hub-li i{display:none}.hub-li b{display:block;font-weight:700;font-size:22px;letter-spacing:-.02em}.hub-li small{display:block;margin-top:8px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#8fb2ff;font-weight:600}
.hub-cards{display:none}.hub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hub-tr{position:fixed;inset:0;z-index:9999;visibility:hidden;opacity:0;pointer-events:none}
.hub-crew{padding-top:clamp(70px,10vw,140px)}

/* modalita 3D */
body.hub-3d .hub-pin{height:100vh;height:100svh;padding:0;overflow:hidden}
body.hub-3d .hub-stage{position:absolute;inset:0;max-width:none;margin:0}
body.hub-3d .hub-glow{display:block;position:absolute;inset:0;background:radial-gradient(60% 55% at 50% 50%,rgba(45,107,255,.16),transparent 70%),radial-gradient(40% 40% at 80% 20%,rgba(255,45,155,.10),transparent 70%);pointer-events:none}
body.hub-3d .hub-scene{display:block;position:absolute;inset:0;perspective:1500px;perspective-origin:50% 50%}
body.hub-3d .hub-cards{display:block;position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
body.hub-3d .hub-card{position:absolute;left:0;top:0;display:block;transform-style:preserve-3d;pointer-events:none;text-decoration:none;color:#fff;outline-offset:6px;will-change:transform;contain:layout style}
body.hub-3d.hub-live .hub-card{pointer-events:auto;cursor:pointer}
.hub-in{display:block;position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.hub-f,.hub-b,.hub-g1,.hub-g2{position:absolute;inset:0;border-radius:10px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.hub-f{background:linear-gradient(155deg,hsl(var(--h),88%,calc(var(--l)*1%)),hsl(calc(var(--h) + 34),80%,calc(var(--l)*1% - 24%)));box-shadow:0 0 0 1px hsla(var(--h),90%,75%,.45),0 22px 50px rgba(0,0,0,.55);display:block;transform:translateZ(0)}
/* LQ: niente ghost RGB / ombre pesanti */
body.hub-lq .hub-g1,body.hub-lq .hub-g2{display:none!important}
body.hub-lq .hub-f,body.hub-lq .hub-b{box-shadow:0 0 0 1px hsla(var(--h),90%,75%,.35)}
.hub-f::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 85% 0,rgba(255,255,255,.35),transparent 60%);}
.hub-f::after{content:none}
.hub-b{transform:rotateY(180deg);background:linear-gradient(155deg,hsl(calc(208 + var(--h)*.05),88%,calc(var(--l)*1% - 6%)),hsl(calc(222 + var(--h)*.03),85%,calc(var(--l)*.38% + 2%)) 62%,hsl(226,70%,7%));box-shadow:0 0 0 1px hsla(212,95%,72%,.35),0 22px 50px rgba(0,0,0,.55)}
.hub-g1,.hub-g2{opacity:0;mix-blend-mode:screen}.hub-g1{background:#00e5ff}.hub-g2{background:#ff2d55}
.hub-ph{position:absolute;left:0;right:0;top:46%;text-align:center;font-size:clamp(7px,.62vw,10px);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.75);z-index:1}
.hub-cn{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 11px;font-size:clamp(10px,.95vw,13px);font-weight:700;letter-spacing:.02em;background:linear-gradient(transparent,rgba(5,7,13,.7));z-index:1}
body.hub-3d .hub-scene{z-index:2}
body.hub-3d .hub-sub2{position:absolute;right:var(--cwx,clamp(20px,6vw,90px));bottom:clamp(30px,8vh,80px);margin:0;text-align:right;color:#cdd2e2;font-size:15px;line-height:1.6;z-index:1;pointer-events:none;max-width:320px}
.hub-sub2{display:none}body.hub-3d .hub-sub2{display:block}
.hub-btn{display:inline-flex;gap:12px;align-items:center;margin-top:24px;padding:14px 22px;border-radius:99px;background:#2d6bff;color:#fff;text-decoration:none;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
body.hub-3d .hub-btn{pointer-events:auto}
body.hub-3d .hub-h1{position:absolute;left:0;right:0;top:clamp(96px,15vh,170px);padding:0 var(--cwx,clamp(20px,6vw,90px));font-size:clamp(30px,min(5.8vw,10.5vh),calc(98px*var(--k,1)));z-index:1;pointer-events:none;display:flex;justify-content:space-between;gap:3vw;text-shadow:none;-webkit-font-smoothing:antialiased}
body.hub-3d .hub-h1 .r{text-align:right;margin-left:auto;color:#fff}
body.hub-3d .hub-sub{position:absolute;left:var(--cwx,clamp(20px,6vw,90px));bottom:clamp(30px,8vh,80px);margin:0;z-index:1;max-width:300px;pointer-events:none}
body.hub-3d .hub-sub b{display:block;margin-top:14px;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:#8fb2ff}
body.hub-3d .hub-wall{position:absolute;right:var(--cwx,clamp(20px,6vw,90px));top:50%;width:min(26vw,calc(380px*var(--k,1)));margin:0;transform:translateY(-50%);visibility:hidden;opacity:0;z-index:3;pointer-events:none}
body.hub-3d .hub-wall h2{font-size:clamp(28px,min(4vw,8vh),calc(60px*var(--k,1)));line-height:1.05;font-weight:700}
body.hub-3d .hub-lst{display:block;position:absolute;left:var(--cwx,clamp(20px,6vw,90px));top:50%;width:min(48vw,640px);transform:translateY(-50%);z-index:4;visibility:hidden;opacity:0}
body.hub-3d .hub-lst .hub-k{display:block;margin:0 0 18px;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:#8fb2ff;font-weight:700}
body.hub-3d .hub-list{display:block}
body.hub-3d .hub-li{display:flex;align-items:baseline;gap:.5em;border:0;background:none;padding:0;border-radius:0;font-size:clamp(20px,min(2.55vw,5.2vh),calc(52px*var(--k,1)));line-height:1.12;white-space:nowrap;font-weight:600;letter-spacing:-.025em;opacity:var(--o,.3);transition:opacity .3s,color .3s;padding:.06em 0;position:relative;padding-left:1.1em}
body.hub-3d .hub-li i{display:block;position:absolute;left:0;top:.06em;font-style:normal;color:#2d6bff;opacity:0;transform:translateX(-10px);transition:opacity .3s,transform .3s}
body.hub-3d .hub-li.on i{opacity:1;transform:none}
body.hub-3d .hub-li.on{opacity:1;color:#fff;font-weight:700}
body.hub-3d .hub-li b{font-weight:inherit;font-size:1em}
body.hub-3d .hub-li small{margin:0;font-size:.2em;letter-spacing:.2em;color:#8fb2ff;opacity:0;transition:opacity .3s;white-space:nowrap}
body.hub-3d .hub-li.on small{opacity:1}
body.hub-3d .hub-li:hover{opacity:1}
body.hub-3d .hub-desc{display:block;position:relative;margin-top:22px;min-height:3.4em;max-width:420px}
body.hub-3d .hub-desc p{position:absolute;inset:0 0 auto 0;margin:0;color:#cdd2e2;font-size:clamp(13px,1.1vw,16px);line-height:1.6;opacity:0;transition:opacity .35s}
body.hub-3d .hub-desc p.on{opacity:1}
@media(max-width:760px){
 body.hub-3d .hub-h1{flex-direction:column;gap:0;top:clamp(84px,13vh,120px)}
 body.hub-3d .hub-h1 .r{text-align:right;margin-left:auto}
 body.hub-3d .hub-wall{right:auto;left:var(--cwx,20px);width:calc(100% - 2*var(--cwx,20px));top:clamp(90px,14vh,130px);transform:none}
 body.hub-3d .hub-lst{width:calc(100% - 2*var(--cwx,20px));top:clamp(84px,12vh,110px);transform:none}
 body.hub-3d .hub-li{font-size:clamp(22px,7vw,32px)}
 body.hub-3d .hub-li small{display:none}
 body.hub-3d .hub-desc{min-height:2.8em;margin-top:12px}
 body.hub-3d .hub-sub{right:var(--cwx,20px);max-width:none;bottom:clamp(20px,5vh,40px)}
 body.hub-3d .hub-sub2{display:none}
}
body.hub-3d .hub-h1{z-index:3!important}

/* Farovers / crew (Netlify site.css CASI-NEW) */
.cs-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 clamp(26px,4vw,44px)}
.cs-chips span{border:1px solid var(--line,rgba(255,255,255,.12));padding:9px 16px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.05em;color:#cdd2e2;background:rgba(45,107,255,.06)}
.fv-full{width:100%;margin:clamp(30px,5vh,56px) 0 clamp(26px,4vw,44px);aspect-ratio:16/9;max-height:92vh;background:#000;overflow:hidden}
.fv-full video{width:100%;height:100%;object-fit:cover;display:block}
.fv-full{width:100vw!important;margin-left:calc(50% - 50vw)!important;max-width:none!important}
/* home.css impone h1/h2 { font-weight:300!important } — override solo su Works */
body.argo-home-olimpo.works .hub-h1,
body.argo-home-olimpo.works .hub-h1 span,
body.argo-home-olimpo.hub-3d .hub-h1,
body.argo-home-olimpo.hub-3d .hub-h1 span,
body.argo-home-olimpo.works .hub-wall h2,
body.argo-home-olimpo.hub-3d .hub-wall h2,
body.argo-home-olimpo.works .hub-crew .sec-in h2,
body.argo-home-olimpo.works .hub-crew h2,
body.argo-home-olimpo.works .end h2{
  font-weight:700!important;
}
body.argo-home-olimpo.works .hub-li,
body.argo-home-olimpo.hub-3d .hub-li,
body.argo-home-olimpo.works .hub-li b{
  font-weight:600!important;
}
body.argo-home-olimpo.works .hub-li.on,
body.argo-home-olimpo.hub-3d .hub-li.on{
  font-weight:700!important;
}
.hub-crew .pn b{color:#fff;font-weight:700!important}

/* Una sola greca sotto Farovers: togli il bottom del crew (resta .gdiv prima del footer).
   hub-tr sta tra #team e .gdiv, quindi lo script greche non salta --g2 e ne crea due. */
body.works #team.hub-crew > .grv[style*="bottom"]{display:none!important}

/* Works: chiusura mini */
body.works .end.mini{min-height:auto;padding-block:clamp(100px,16vh,180px) 50px}
body.works .end.mini h2{max-width:18ch}
body.works .end.mini .sub{max-width:52ch;margin:18px 0 0;color:var(--ink-dim,#9aa3b8)}

/* card faces: compositing più nitido (niente upsample CSS sul focus — vedi hub.js FOC/BASE) */
body.hub-3d .hub-f{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0.1px);
  image-rendering:auto;
  background-repeat:no-repeat;
  -webkit-background-size:cover;
  background-size:cover;
}
