
@keyframes gradShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
  100% { background-position: 100% 50%; }
}
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.grad-anim {
  background: linear-gradient(90deg, #38bdf8 0%, #818cf8 25%, #34d399 50%, #818cf8 75%, #38bdf8 100%) !important;
  background-size: 400% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: gradShift 8s ease infinite !important;
  text-shadow: 0 0 30px rgba(56,189,248,0.5), 0 0 60px rgba(129,140,248,0.3) !important;
  filter: drop-shadow(0 0 8px rgba(56,189,248,0.4)) !important;
}

/* Override per h2/h3 con grad-anim */
.section-title .grad-anim,
h2 .grad-anim,
h3 .grad-anim {
  color: transparent !important;
  background: linear-gradient(90deg, #38bdf8 0%, #818cf8 25%, #34d399 50%, #818cf8 75%, #38bdf8 100%) !important;
  background-size: 400% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: gradShift 8s ease infinite !important;
  text-shadow: 0 0 30px rgba(56,189,248,0.5), 0 0 60px rgba(129,140,248,0.3) !important;
  filter: drop-shadow(0 0 8px rgba(56,189,248,0.4)) !important;
}

:root {
  --bg: #080b10;
  --surface: #0d1117;
  --surface2: #131920;
  --border: rgba(255,255,255,0.06);
  --border-hover: rgba(255,255,255,0.14);
  --text: #e2e8f0;
  --muted: #64748b;
  --accent: #38bdf8;
  --accent2: #818cf8;
  --accent3: #34d399;
  --white: #ffffff;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content:'';
  position:fixed; inset:0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none; z-index:1000; opacity:.4;
}

/* ── CURSOR ── */
.cursor { width:8px; height:8px; background:var(--accent); border-radius:50%; position:fixed; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s; mix-blend-mode:screen; }
.cursor-ring { width:32px; height:32px; border:1px solid rgba(56,189,248,0.4); border-radius:50%; position:fixed; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:all .12s ease-out; }

/* ── CANVAS BG ── */
#aurora-canvas {
  position:fixed; inset:0;
  z-index:0;
  pointer-events:none;
}

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:900;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 3rem; height:64px;
  background:rgba(4,8,25,0.85);
  backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--border);
  transition:border-color .3s;
}

.nav-brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; }

/* Inline logo SVG */
.nav-logo-svg { height:32px; width:auto; }

.nav-brand-sub {
  font-size:.62rem; color:var(--muted);
  letter-spacing:.12em; text-transform:uppercase; font-weight:400;
}

.nav-links { display:flex; align-items:center; gap:2.5rem; list-style:none; }
.nav-links a { font-size:.82rem; color:var(--muted); text-decoration:none; letter-spacing:.03em; transition:color .2s; }
.nav-links a:hover { color:var(--text); }
.nav-pill {
  background:rgba(56,189,248,0.1); border:1px solid rgba(56,189,248,0.25);
  color:var(--accent) !important; padding:.45rem 1.1rem; border-radius:100px;
  font-size:.8rem !important; transition:all .2s !important;
}
.nav-pill:hover { background:rgba(56,189,248,0.18) !important; border-color:rgba(56,189,248,0.5) !important; }

/* ── HERO ── */
#hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; padding:8rem 2rem 8rem;
  position:relative; z-index:2; overflow:hidden;
}

.hero-logo {
  margin-bottom:2.5rem;
  opacity:0; animation:fadeUp .8s .1s forwards;
}

.hero-logo img {
  height:clamp(80px,14vw,160px);
  width:auto;
  filter: drop-shadow(0 0 40px rgba(56,189,248,0.25)) drop-shadow(0 0 80px rgba(129,140,248,0.15));
  transition: filter .3s;
}

.hero-logo img:hover {
  filter: drop-shadow(0 0 60px rgba(56,189,248,0.4)) drop-shadow(0 0 100px rgba(129,140,248,0.25));
}

.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(56,189,248,0.07); border:1px solid rgba(56,189,248,0.2);
  border-radius:100px; padding:.35rem 1rem;
  font-size:.72rem; color:var(--accent); letter-spacing:.08em; text-transform:uppercase;
  margin-bottom:2rem; opacity:0; animation:fadeUp .7s .25s forwards;
}

.hero-badge-dot { width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2s infinite; }

@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }

.hero-headline {
  font-family:'Syne',sans-serif; font-weight:800;
  font-size:clamp(1.6rem,4vw,3.2rem);
  line-height:1.0; letter-spacing:-.05em; color:var(--white);
  margin-bottom:1.5rem; opacity:0; animation:fadeUp .8s .4s forwards;
}

.hero-headline .line2 {
  display:block;
  background: linear-gradient(90deg, #38bdf8 0%, #818cf8 25%, #34d399 50%, #818cf8 75%, #38bdf8 100%);
  background-size: 400% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: gradShift 8s ease infinite;
}

.hero-sub {
  font-size:clamp(.95rem,2vw,1.15rem); color:#ffffff;
  max-width:540px; line-height:1.75; font-weight:300;
  margin-bottom:3rem; opacity:0; animation:fadeUp .8s .55s forwards;
}

.hero-actions {
  display:flex; gap:1rem; flex-wrap:wrap; justify-content:center;
  opacity:0; animation:fadeUp .8s .7s forwards;
}

.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.75rem 1.75rem; border-radius:8px;
  font-family:'DM Sans',sans-serif; font-size:.88rem; font-weight:500;
  cursor:pointer; text-decoration:none; transition:all .22s; border:none;
}
.btn-solid {
  background: linear-gradient(90deg, #38bdf8, #818cf8, #34d399, #38bdf8);
  background-size: 300% 100%;
  color: #080b10;
  font-weight: 600;
  animation: gradShift 3s ease infinite;
}
.btn-solid:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(56,189,248,0.45); filter:brightness(1.1); }
.btn-ghost { background:transparent; border:1px solid var(--border-hover); color:var(--text); }
.btn-ghost:hover { border-color:rgba(255,255,255,0.25); background:rgba(255,255,255,0.04); transform:translateY(-2px); }
.arrow { font-style:normal; transition:transform .2s; }
.btn:hover .arrow { transform:translateX(3px); }

.scroll-indicator {
  position:absolute; bottom:1rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  opacity:0; animation:fadeUp .8s 1.4s forwards;
}
.scroll-indicator span { font-size:.65rem; color:var(--muted); letter-spacing:.15em; text-transform:uppercase; }
.scroll-track { width:1px; height:48px; background:linear-gradient(to bottom,var(--accent),transparent); position:relative; overflow:hidden; }
.scroll-thumb { width:100%; height:40%; background:var(--accent); position:absolute; top:-40%; animation:scrollDown 1.8s ease-in-out infinite; }
@keyframes scrollDown { to{top:140%} }

/* ── DIVIDER ── */
.divider { height:1px; background:linear-gradient(to right,transparent,var(--border-hover) 30%,var(--border-hover) 70%,transparent); position:relative; z-index:2; }

/* ── LOGOS STRIP ── */
.logos-strip {
  padding:3rem 4rem; display:flex; align-items:center; justify-content:center;
  gap:3rem; flex-wrap:wrap; position:relative; z-index:2;
}
.logos-strip-label { font-size:.7rem; color:var(--white); letter-spacing:.12em; text-transform:uppercase; flex-basis:100%; text-align:center; margin-bottom:.5rem; font-weight:600; }
.tech-badge { display:flex; align-items:center; gap:.5rem; color:var(--white); font-size:.8rem; font-weight:500; letter-spacing:.04em; opacity:.9; transition:opacity .2s; }
.tech-badge:hover { opacity:1; color:var(--white); }
.tech-badge-icon { font-size:1.1rem; }

/* ── SECTIONS ── */
.section {
  max-width:1200px; margin:0 auto; padding:7rem 3rem; position:relative; z-index:2;
}
.section-panel {
  background: rgba(4,10,30,0.72);
  backdrop-filter: blur(24px) saturate(140%);
  border-radius:20px;
  border:1px solid rgba(56,140,255,0.12);
  padding:4rem;
  box-shadow: 0 8px 64px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04);
}

.section-label {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.7rem; color:var(--accent); letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.2rem; font-weight:500;
}
.section-label::before { content:''; width:20px; height:1px; background:var(--accent); }
h1 {
  font-size: clamp(1.6rem, 4vw, 3.2rem);
}

h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.2rem);
}

h3 {
  font-size: clamp(0.95rem, 2.5vw, 1.35rem);
}

h4 {
  font-size: clamp(0.85rem, 2vw, 1.1rem);
}

.section-title { font-family:'Syne',sans-serif; font-weight:800; font-size:clamp(2rem,4vw,3.2rem); color:#ffffff; letter-spacing:-.02em; line-height:1.15; margin-bottom:1rem; text-shadow:0 0 40px rgba(56,140,255,0.3); }
.section-body { color:#94b8d8; font-size:1rem; line-height:1.8; max-width:500px; font-weight:400; }

/* ── SERVICES ── */
.services-layout { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.services-header { position:sticky; top:8rem; }
.services-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  background: transparent;
  border: none;
}

.service-item {
  background: linear-gradient(135deg, rgba(10,25,70,0.82) 0%, rgba(6,15,45,0.88) 100%);
  backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(56,140,255,0.14);
  border-radius: 14px;
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  gap: .9rem;
  transition: all .38s cubic-bezier(.16,1,.3,1);
  cursor: default;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04);
}
.service-item:hover {
  background: linear-gradient(135deg, rgba(15,40,100,0.92) 0%, rgba(8,20,60,0.95) 100%);
  transform: translateY(-4px);
  border-color: rgba(56,140,255,0.4);
  box-shadow: 0 0 0 1px rgba(56,140,255,0.25), 0 16px 48px rgba(10,40,160,0.35), inset 0 0 60px rgba(56,140,255,0.05);
}
.service-item::before {
  content:'';
  position:absolute; inset:0; border-radius:14px;
  background: linear-gradient(135deg, rgba(56,140,255,0.07) 0%, transparent 55%);
  opacity:0; transition:opacity .38s; pointer-events:none;
}
.service-item:hover::before { opacity:1; }
.service-item::after {
  content:'';
  position:absolute; bottom:0; left:10%; right:10%;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(56,189,248,0.7), transparent);
  transform:scaleX(0); transition:transform .45s ease; transform-origin:center;
  border-radius:1px;
}
.service-item:hover::after { transform:scaleX(1); }
.service-item-icon { width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; margin-bottom:.2rem; }
.icon-sky   { background:rgba(56,189,248,0.1);  }
.icon-indigo{ background:rgba(129,140,248,0.1); }
.icon-green { background:rgba(52,211,153,0.1);  }
.icon-rose  { background:rgba(251,113,133,0.1); }
.icon-amber { background:rgba(251,191,36,0.1);  }
.icon-violet{ background:rgba(167,139,250,0.1); }
.service-item-title { font-family:'Syne',sans-serif; font-weight:700; font-size:.95rem; color:#e8f4ff; margin-bottom:.4rem; letter-spacing:-.01em; }
.service-item-desc  { font-size:.85rem; color:#8ab0cc; line-height:1.7; font-weight:400; }

/* ── VISION ── */
#visione { background: rgba(4,10,30,0.6); backdrop-filter:blur(20px); border-top:1px solid rgba(56,140,255,0.12); border-bottom:1px solid rgba(56,140,255,0.12); padding:7rem 0; position:relative; z-index:2; }
.vision-inner {
  max-width:1000px; margin:0 auto; padding:0 3rem;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:3rem;
}
.vision-quote {
  font-family:'Syne',sans-serif;
  font-size: clamp(2.2rem,5vw,4rem);
  font-weight:800; color:var(--white);
  line-height:1.15; letter-spacing:-.03em;
  max-width:800px;
}
.vision-quote em { font-style:normal; background:linear-gradient(90deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.vision-text { color:#94b8d8; font-size:1rem; line-height:1.9; font-weight:400; max-width:680px; text-align:center; }
.vision-text p { margin-bottom:1.2rem; }
.vision-text p:last-child { margin-bottom:0; }

/* ── TECH STACK ── */
.stack-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-top: 3.5rem;
}
.stack-item {
  background: linear-gradient(145deg, rgba(6,14,42,0.9) 0%, rgba(4,10,30,0.95) 100%);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(56,140,255,0.12);
  border-radius: 16px;
  padding: 2rem 1.8rem;
  transition: all .4s cubic-bezier(.16,1,.3,1);
  position: relative; overflow: hidden; cursor: default;
  box-shadow: 0 4px 24px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04);
}
.stack-item-header {
  display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem;
}
.stack-item-icon {
  font-size: 1.4rem;
  width: 44px; height: 44px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.stack-item-progress {
  margin: 1rem 0 .5rem;
  height: 2px;
  background: rgba(56,140,255,0.1);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.stack-item-progress-bar {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--accent), var(--accent2));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .8s cubic-bezier(.16,1,.3,1);
}
.stack-item:hover .stack-item-progress-bar { transform: scaleX(1); }
.stack-item-langs {
  display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .8rem;
}
.stack-lang {
  font-family: 'DM Mono', 'Courier New', monospace;
  font-size: .62rem;
  color: rgba(56,189,248,0.85);
  background: rgba(56,140,255,0.08);
  border: 1px solid rgba(56,140,255,0.18);
  border-radius: 4px;
  padding: .18rem .45rem;
  letter-spacing: .04em;
  transition: all .2s;
}
.stack-item:hover .stack-lang {
  background: rgba(56,140,255,0.16);
  border-color: rgba(56,140,255,0.4);
  color: #7dd3fc;
}
/* Terminal blinking cursor on hover */
.stack-item-label::after {
  content: '_';
  opacity: 0;
  color: var(--accent);
  animation: none;
}
.stack-item:hover .stack-item-label::after {
  opacity: 1;
  animation: blink .8s step-end infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.stack-item:hover {
  background: linear-gradient(145deg, rgba(12,30,90,0.95) 0%, rgba(6,18,55,0.98) 100%);
  transform: translateY(-5px) scale(1.01);
  border-color: rgba(56,140,255,0.38);
  box-shadow: 0 0 0 1px rgba(56,140,255,0.2), 0 20px 60px rgba(10,40,160,0.4), inset 0 0 80px rgba(56,140,255,0.04);
}
.stack-item::before {
  content:'';
  position:absolute; inset:0; border-radius:16px;
  background: radial-gradient(ellipse at top left, rgba(56,140,255,0.08) 0%, transparent 60%);
  opacity:0; transition:opacity .4s; pointer-events:none;
}
.stack-item:hover::before { opacity:1; }
.stack-item::after {
  content:'';
  position:absolute; top:0; left:15%; right:15%; height:1px;
  background: linear-gradient(90deg, transparent, rgba(56,189,248,0.6), transparent);
  transform:scaleX(0); transition:transform .45s ease; transform-origin:center;
}
.stack-item:hover::after { transform:scaleX(1); }
.stack-item-label { font-family:'Syne',sans-serif; font-size:.88rem; font-weight:700; color:#e8f4ff; letter-spacing:.01em; }
.stack-item-tech { font-size:.78rem; color:#7a9ab8; line-height:1.6; font-weight:400; margin-top:.2rem; }
.stack-dot { width:6px; height:6px; border-radius:50%; margin-bottom:1rem; }


/* ── CONTACT ── */
#contatti { padding:7rem 0; position:relative; z-index:2; }
.contact-inner { max-width:640px; margin:0 auto; padding:0 3rem; }
.contact-form { display:flex; flex-direction:column; gap:.75rem; margin-top:3rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.form-field { background:var(--surface); border:1px solid var(--border); color:var(--text); padding:.85rem 1.1rem; border-radius:8px; font-family:'DM Sans',sans-serif; font-size:.88rem; outline:none; transition:border-color .2s,background .2s; width:100%; }
.form-field:focus { border-color:rgba(56,189,248,0.4); background:var(--surface2); }
.form-field::placeholder { color:var(--muted); }
textarea.form-field { resize:vertical; min-height:120px; }
.form-actions { display:flex; justify-content:flex-end; margin-top:.5rem; }

/* ── FOOTER ── */
footer {
  position:relative; z-index:2;
  background: rgba(4,8,25,0.82);
  backdrop-filter: blur(24px) saturate(150%);
  border-top: 1px solid rgba(56,140,255,0.12);
  box-shadow: 0 -4px 40px rgba(0,0,0,0.4), inset 0 1px 0 rgba(56,140,255,0.06);
}
.footer-inner {
  max-width:1200px; margin:0 auto;
  padding:1.6rem 3rem;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
}
.footer-left {
  display:flex; align-items:center; gap:.8rem;
}
.footer-tagline {
  font-size:.65rem; color:var(--muted);
  letter-spacing:.14em; text-transform:uppercase; font-weight:400;
}
.footer-center { flex:1; text-align:center; }
.footer-copy { font-size:.75rem; color:#4a6a84; letter-spacing:.02em; }
.footer-links { display:flex; gap:2rem; }
.footer-links a { font-size:.75rem; color:#4a6a84; text-decoration:none; transition:color .2s; letter-spacing:.02em; }
.footer-links a:hover { color:var(--accent); }

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1); }
.reveal.on { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }

@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }

/* ── TECH TAGS ── */
.tech-tags {
  display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.8rem;
}
.tech-tag {
  font-size:.65rem; font-weight:600; letter-spacing:.06em;
  color:rgba(56,189,248,0.9);
  background:rgba(56,140,255,0.08);
  border:1px solid rgba(56,140,255,0.2);
  border-radius:4px; padding:.2rem .5rem;
  text-transform:uppercase;
  transition: all .2s;
}
.service-item:hover .tech-tag {
  background:rgba(56,140,255,0.15);
  border-color:rgba(56,140,255,0.45);
  color:#7dd3fc;
}

/* ── STACK ITEM UPGRADE ── */
.stack-item-meta {
  display:flex; align-items:center; gap:.5rem; margin-bottom:.6rem;
}
.stack-badge {
  font-size:.6rem; font-weight:700; letter-spacing:.1em;
  color:rgba(56,189,248,0.8);
  background:rgba(56,140,255,0.1);
  border:1px solid rgba(56,140,255,0.2);
  border-radius:3px; padding:.15rem .4rem;
  text-transform:uppercase;
}

/* ── RESPONSIVE ── */
@media(max-width:900px){ .stack-grid{grid-template-columns:1fr 1fr;} 
  nav{padding:0 1.5rem}
  .nav-links{display:none}
  .services-layout{grid-template-columns:1fr} .services-list{grid-template-columns:1fr}
  .services-header{position:static}
  .vision-inner{grid-template-columns:1fr;gap:3rem}
  .section{padding:5rem 1.5rem}
  .logos-strip{padding:2rem 1.5rem;gap:1.5rem}
  .footer-inner{flex-direction:column;text-align:center;padding:1.5rem} .footer-center{flex:none}
  .contact-inner{padding:0 1.5rem}
  .form-row{grid-template-columns:1fr}
  #visione{padding:5rem 0}
  .vision-inner{padding:0 1.5rem}
}
@media(max-width:600px){ .stack-grid{grid-template-columns:1fr;} }

.nav-login {
  display:inline-flex; align-items:center; gap:.4rem;
  background: linear-gradient(135deg, #818cf8, #38bdf8);
  color:#fff !important;
  padding:.45rem 1.3rem;
  border-radius:100px;
  font-size:.8rem !important;
  font-weight:600;
  border:none;
  position:relative;
  z-index:0;
  transition:all .3s !important;
  box-shadow: 0 0 14px rgba(129,140,248,0.6), 0 0 32px rgba(56,189,248,0.3);
  text-decoration:none;
}
.nav-login::after {
  content:'';
  position:absolute; inset:-3px;
  border-radius:100px;
  background: linear-gradient(135deg, #818cf8, #38bdf8, #34d399);
  z-index:-1;
  filter:blur(10px);
  opacity:.55;
  transition:opacity .3s;
}
.nav-login:hover {
  transform:translateY(-2px) !important;
  box-shadow:0 0 24px rgba(129,140,248,0.8),0 0 48px rgba(56,189,248,0.5) !important;
  color:#fff !important;
}
.nav-login:hover::after { opacity:.85; }

.grecaptcha-badge { visibility:hidden !important; width:0 !important; }

/* Stack cards: visibili subito senza aspettare scroll */
#tecnologie .stack-item {
  opacity: 1 !important;
  transform: none !important;
}
