:root{
  --bg:#0f1724;
  --card:#0f1724;
  --muted:#9aa4b2;
  --accent:#0ea5a4;
  --accent-2:#0ea5ff;
  --surface:#0b1220;
  --glass: rgba(255,255,255,0.04);
  --radius:12px;
  --max-width:1100px;
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  background: var(--bg);
  color:#e6eef6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.container{max-width:var(--max-width);margin:0 auto;padding:0 20px}
.site-header{position:sticky;top:0;background:linear-gradient(90deg,rgba(3,7,12,0.6),rgba(3,7,12,0.2));backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,0.03)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.logo{font-weight:700;color:var(--accent);text-decoration:none;font-size:1.05rem}
.nav a{color:var(--muted);text-decoration:none;margin-left:22px;font-weight:600}
.nav a:hover{color:#fff}
.hero{padding:64px 0}
.hero-inner{display:flex;gap:40px;align-items:center}
.hero-text{flex:1}
.hero h1{font-size:2.4rem;margin:0 0 12px}
.lead{color:var(--muted);font-size:1.05rem;margin-bottom:18px}
.btn{display:inline-block;padding:12px 18px;border-radius:10px;text-decoration:none;font-weight:600}
.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#041018}
.btn.ghost{border:1px solid rgba(255,255,255,0.06);color:#fff;background:transparent;margin-left:10px}
.hero-card{width:320px;background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);border-radius:var(--radius);padding:18px;border:1px solid rgba(255,255,255,0.04)}
.card-content h3{margin:0 0 8px}
.section{padding:56px 0}
.about p, .work p{color:var(--muted)}
.grid{display:grid;gap:18px}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--glass);padding:18px;border-radius:10px;border:1px solid rgba(255,255,255,0.03)}
.project{background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);padding:18px;border-radius:10px;border:1px solid rgba(255,255,255,0.03)}
.contact a{color:var(--accent);text-decoration:none;font-weight:700}
.site-footer{border-top:1px solid rgba(255,255,255,0.03);padding:18px 0;margin-top:36px}
.footer-inner{display:flex;justify-content:space-between;align-items:center}
.footer-nav a{color:var(--muted);text-decoration:none;margin-left:14px}
@media (max-width:900px){
  .hero-inner{flex-direction:column}
  .grid.three{grid-template-columns:1fr}
  .grid.two{grid-template-columns:1fr}
  .footer-inner{flex-direction:column;gap:10px}
  .nav{display:none}
}

/* Animazioni e microinterazioni */
:root{--reveal-duration:700ms;--reveal-ease:cubic-bezier(.2,.9,.3,1)}

.reveal-hidden{opacity:0;transform:translateY(18px);transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease)}
.reveal-visible{opacity:1;transform:none}

.hero-card{ /* no floating animation for a static, clean background */ }

/* Fancy title with gradient shine */
.fancy-title{font-size:2.6rem;margin:0 0 12px;color:#ffffff;position:relative}

/* Hero card tilt base style */
.hero-card{will-change:transform;transform-style:preserve-3d;transition:transform 220ms cubic-bezier(.2,.9,.3,1),box-shadow 220ms ease}
.hero-card[data-parallax]:hover{box-shadow:0 30px 60px rgba(2,6,12,0.6)}

.btn{transition:transform 180ms ease, box-shadow 180ms ease}
.btn:active{transform:translateY(1px) scale(.998)}
.btn.primary:hover{box-shadow:0 10px 30px rgba(14,165,164,0.16);transform:translateY(-3px)}

.nav a{position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width 220ms var(--reveal-ease)}
.nav a:hover::after{width:100%}

.card{transition:transform 260ms cubic-bezier(.2,.9,.3,1),box-shadow 260ms cubic-bezier(.2,.9,.3,1)}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,6,12,0.5)}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .reveal-hidden, .hero-card, .btn, .card{transition:none;animation:none}
}
