:root{
  --bg: #ffffff;
  --text: #0b1b2b;
  --primary: #00a3e0; /* azzurro */
  --muted: #6b7280;
  --radius: 8px;
  --container: 1100px;
  --gap: 1.25rem;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color-scheme: light;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.45;
}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 1rem;
}

.site-header{
  background:transparent;
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter: blur(6px);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1rem 0;
}
.logo{
  font-weight:700;
  color:var(--text);
  text-decoration:none;
  font-size:1.05rem;
}
.nav{
  display:flex;
  gap:1rem;
}
.nav a{color:var(--muted); text-decoration:none; padding:0.35rem 0.5rem}
.nav a:hover{color:var(--text)}

.nav-toggle{display:none; background:none; border:0; font-size:1.25rem; cursor:pointer}

/* Hero */
.hero{
  padding:4.5rem 0;
}
.hero-inner{ text-align:left; }
.hero h1{ font-size:2rem; margin:0 0 0.5rem; color:var(--text) }
.hero p{ margin:0 0 1.25rem; color:var(--muted) }
.hero-cta .btn{ margin-right:0.5rem }

/* Panels */
.panel{ padding:3rem 0; }
.panel.alt{ background:#fbfcfd; }

/* Projects */
.projects{ display:grid; grid-template-columns:1fr; gap:1rem; }
.project{ padding:1rem; border:1px solid #eef2f6; border-radius:var(--radius); background: #fff; }
.project h3{ margin:0 0 0.5rem; }

/* Contact form */
.contact-form{ max-width:680px; }
.contact-form label{ display:block; margin-bottom:0.75rem; color:var(--muted) }
.contact-form input,
.contact-form textarea{
  width:100%; padding:0.6rem 0.75rem; border:1px solid #e6e9ee; border-radius:6px;
  font:inherit;
  margin-top:0.35rem;
}
.form-row{ margin-top:0.75rem; display:flex; gap:0.5rem; align-items:center }
#formStatus{ margin-top:0.75rem; color:var(--muted) }

/* Buttons */
.btn{
  background:var(--primary); color:white; padding:0.6rem 1rem; border-radius:6px; border:0; cursor:pointer; text-decoration:none; display:inline-block;
}
.btn.ghost{ background:transparent; color:var(--primary); border:1px solid rgba(0,163,224,0.12) }

/* Footer */
.site-footer{ padding:1.25rem 0; border-top:1px solid #f0f3f6; margin-top:2rem }
.footer-inner{ text-align:center; color:var(--muted) }

/* Responsive */
@media (min-width:700px){
  .hero h1{ font-size:2.5rem }
  .projects{ grid-template-columns: repeat(2, 1fr) }
  .nav-toggle{ display:none }
}

@media (max-width:699px){
  .nav{ display:none; position:absolute; right:1rem; top:64px; background:white; border:1px solid #eef2f6; padding:0.5rem; border-radius:8px; flex-direction:column }
  .nav a{ padding:0.5rem 1rem }
  .nav-toggle{ display:block }
}