@charset "UTF-8";

    /* ── Tokens ─────────────────────────────────────────────────────── */
    :root {
      --bg:        #f0f4f8;
      --card:      #ffffff;
      --border:    #e2e8f0;
      --text:      #0f172a;
      --sub:       #64748b;
      --accent:    #d97706;
      --accent2:   #b45309;
      --glow:      rgba(217,119,6,.25);
      --green:     #16a34a;
      --blue:      #2563eb;
      --red:       #dc2626;
      --orange:    #ea580c;
      --shadow:    0 4px 24px rgba(0,0,0,.08);
      --shadow-lg: 0 12px 48px rgba(0,0,0,.12);
      --font:      'Inter', system-ui, sans-serif;
      --mono:      'JetBrains Mono', monospace;
      --radius:    16px;
      --hdr-bg:    rgba(240,244,248,.85);
    }
    [data-theme="dark"] {
      --bg:        #070b14;
      --card:      #111827;
      --border:    #1e293b;
      --text:      #f1f5f9;
      --sub:       #94a3b8;
      --accent:    #f59e0b;
      --accent2:   #d97706;
      --glow:      rgba(245,158,11,.3);
      --green:     #22c55e;
      --blue:      #60a5fa;
      --red:       #f87171;
      --orange:    #fb923c;
      --shadow:    0 4px 24px rgba(0,0,0,.5);
      --shadow-lg: 0 12px 48px rgba(0,0,0,.7);
      --hdr-bg:    rgba(7,11,20,.85);
    }

    /* ── Reset ──────────────────────────────────────────────────────── */
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--font);
      background: var(--bg);
      color: var(--text);
      line-height: 1.6;
      transition: background .3s, color .3s;
    }
    a { color: var(--accent); text-decoration: none; }
    a:hover { color: var(--accent2); }

    /* ── Header ─────────────────────────────────────────────────────── */
    header {
      position: fixed; top: 0; left: 0; right: 0;
      z-index: 100;
      background: var(--hdr-bg);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border);
      height: 64px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 5vw;
    }
    [data-theme="dark"] header { box-shadow: 0 1px 0 rgba(245,158,11,.15); }
    .hdr-logo {
      font-weight: 800;
      font-size: 16px;
      letter-spacing: -.3px;
      color: var(--text);
    }
    .hdr-logo span { color: var(--accent); }
    nav { display: flex; gap: 28px; align-items: center; }
    nav a {
      font-size: 14px;
      font-weight: 500;
      color: var(--sub);
      transition: color .2s;
    }
    nav a:hover { color: var(--accent); }
    .theme-btn {
      background: none;
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--sub);
      cursor: pointer;
      font-size: 16px;
      padding: 6px 10px;
      transition: border-color .2s, color .2s;
    }
    .theme-btn:hover { border-color: var(--accent); color: var(--accent); }
    .hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
    .hamburger span { display: block; width: 22px; height: 2px; background: var(--sub); border-radius: 2px; transition: .3s; }

    /* ── Hero ───────────────────────────────────────────────────────── */
    .hero {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 80px 5vw 60px;
      position: relative;
      overflow: hidden;
    }
    .hero::before {
      content: '';
      position: absolute;
      top: -20%; right: -10%;
      width: 600px; height: 600px;
      background: radial-gradient(circle, var(--glow) 0%, transparent 70%);
      pointer-events: none;
    }
    .hero-tag {
      font-family: var(--mono);
      font-size: 13px;
      color: var(--accent);
      letter-spacing: .08em;
      text-transform: uppercase;
      margin-bottom: 20px;
    }
    .hero h1 {
      font-size: clamp(2.4rem, 7vw, 5.5rem);
      font-weight: 900;
      line-height: 1.05;
      letter-spacing: -.04em;
      max-width: 800px;
      margin-bottom: 28px;
    }
    .hero h1 em {
      font-style: normal;
      color: var(--accent);
    }
    .hero-sub {
      font-size: clamp(1rem, 2.5vw, 1.25rem);
      color: var(--sub);
      max-width: 580px;
      line-height: 1.7;
      margin-bottom: 40px;
    }
    .hero-cta {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 14px 28px;
      border-radius: 10px;
      font-weight: 600;
      font-size: 15px;
      cursor: pointer;
      border: none;
      transition: .2s;
    }
    .btn-primary {
      background: var(--accent);
      color: #000;
    }
    .btn-primary:hover { background: var(--accent2); color: #000; transform: translateY(-1px); box-shadow: 0 8px 24px var(--glow); }
    .btn-outline {
      background: transparent;
      border: 1px solid var(--border);
      color: var(--text);
    }
    .btn-outline:hover { border-color: var(--accent); color: var(--accent); }
    .hero-scroll {
      position: absolute;
      bottom: 32px; left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      color: var(--sub);
      font-size: 12px;
      animation: bounce 2s ease-in-out infinite;
    }
    @keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

    /* ── Sezioni ────────────────────────────────────────────────────── */
    section { padding: 96px 5vw; }
    .section-tag {
      font-family: var(--mono);
      font-size: 12px;
      color: var(--accent);
      letter-spacing: .1em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }
    h2 {
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 800;
      letter-spacing: -.03em;
      line-height: 1.15;
      margin-bottom: 16px;
    }
    .section-sub {
      color: var(--sub);
      font-size: 1.05rem;
      max-width: 560px;
      margin-bottom: 56px;
      line-height: 1.7;
    }

    /* ── Vedetta ────────────────────────────────────────────────────── */
    #vedetta { background: var(--card); }
    .manifesto-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 2px;
      background: var(--border);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      overflow: hidden;
    }
    .manifesto-item {
      background: var(--card);
      padding: 36px 32px;
      position: relative;
      transition: background .2s;
    }
    .manifesto-item:hover { background: var(--bg); }
    .manifesto-num {
      font-family: var(--mono);
      font-size: 11px;
      color: var(--accent);
      letter-spacing: .1em;
      margin-bottom: 14px;
    }
    .manifesto-title {
      font-size: 1.15rem;
      font-weight: 700;
      margin-bottom: 10px;
      line-height: 1.3;
    }
    .manifesto-body {
      font-size: .92rem;
      color: var(--sub);
      line-height: 1.65;
    }

    /* ── Prima pagina animata (evoluzione) ─────────────────────────── */
    #rete { position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.9;
      -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.25) 35%, #000 65%);
      mask-image:linear-gradient(90deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.25) 35%, #000 65%); }
    .hero-inner { position:relative; z-index:1; }
    .entra { opacity:0; transform:translateY(18px); animation: entra .8s cubic-bezier(.2,.7,.2,1) var(--d,0s) forwards; }
    @keyframes entra { to { opacity:1; transform:none; } }
    .evolve { position:relative; background: linear-gradient(90deg, var(--accent), #fbbf24, var(--accent));
      background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent !important;
      animation: luce 4s linear infinite; }
    @keyframes luce { to { background-position:-200% 0; } }
    .cursore { display:inline-block; width:.08em; height:.85em; margin-left:.06em; vertical-align:-.05em;
      background:var(--accent); animation: lampeggia 1s steps(1) infinite; }
    @keyframes lampeggia { 50% { opacity:0; } }
    .evo { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:980px;
      margin: 8px 0 44px; position:relative; }
    .evo::before { content:''; position:absolute; left:6px; right:6px; top:7px; height:2px; background:var(--border); }
    .evo::after { content:''; position:absolute; left:6px; top:7px; height:2px; width:0;
      background:linear-gradient(90deg, var(--blue), var(--accent)); box-shadow:0 0 12px var(--glow);
      animation: riempi 2s cubic-bezier(.6,0,.2,1) .7s forwards; }
    @keyframes riempi { to { width:calc(100% - 12px); } }
    .evo li { position:relative; padding:28px 14px 0 0; opacity:0; transform:translateY(10px);
      animation: entra .6s ease calc(.8s + var(--i) * .5s) forwards; }
    .evo-pallino { position:absolute; top:0; left:0; width:16px; height:16px; border-radius:50%;
      background:var(--bg); border:2px solid var(--accent); }
    .evo-ora .evo-pallino { background:var(--accent); animation: pulsa 1.8s ease-out 2.6s infinite; }
    @keyframes pulsa { 0% { box-shadow:0 0 0 0 var(--glow);} 100% { box-shadow:0 0 0 16px transparent; } }
    .evo-num { display:block; font-family:var(--mono); font-size:11px; color:var(--accent); letter-spacing:.08em; margin-bottom:4px; }
    .evo strong { display:block; font-size:1.02rem; margin-bottom:2px; }
    .evo li > span:last-child { font-size:.88rem; color:var(--sub); line-height:1.4; display:block; }
    @media (max-width: 760px) {
      .evo { grid-template-columns:1fr 1fr; row-gap:22px; }
      .evo::before, .evo::after { display:none; }
    }
    @media (prefers-reduced-motion: reduce) {
      .entra, .evo li { animation:none; opacity:1; transform:none; }
      .evo::after { animation:none; width:calc(100% - 12px); }
      .evolve, .cursore, .evo-ora .evo-pallino { animation:none; }
    }
    /* ── Divisioni ───────────────────────────────────────────────────── */
    .divisione { margin: 48px 0 20px; padding-left: 14px; border-left: 3px solid var(--accent); }
    .divisione:first-of-type { margin-top: 8px; }
    .divisione-tag { font-family: var(--mono); font-size: 11px; color: var(--accent); letter-spacing: .1em; text-transform: uppercase; }
    .divisione-titolo { font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; margin: 2px 0 4px; }
    .divisione-sub { color: var(--sub); font-size: .95rem; }
    .hdr-logo { display: flex; align-items: center; gap: 10px; }
    .hdr-logo img { width: 34px; height: 34px; display: block; }
    /* ── Progetti ───────────────────────────────────────────────────── */
    .progetti-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 20px;
    }
    .project-card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 28px;
      position: relative;
      overflow: hidden;
      transition: transform .25s, box-shadow .25s, border-color .25s;
    }
    .project-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
      background: var(--accent);
    }
    .project-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-lg);
      border-color: var(--accent);
    }
    .project-icon {
      font-size: 28px;
      margin-bottom: 14px;
    }
    .project-name {
      font-size: 1.1rem;
      font-weight: 700;
      margin-bottom: 8px;
    }
    .project-desc {
      font-size: .9rem;
      color: var(--sub);
      line-height: 1.6;
      margin-bottom: 18px;
    }
    .project-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .tag {
      font-family: var(--mono);
      font-size: 11px;
      padding: 3px 9px;
      border-radius: 5px;
      background: var(--bg);
      border: 1px solid var(--border);
      color: var(--sub);
    }
    .tag-accent { background: rgba(245,158,11,.1); border-color: rgba(245,158,11,.3); color: var(--accent); }
    .project-link {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 13px;
      font-weight: 600;
      color: var(--accent);
      margin-top: 18px;
    }

    /* ── Storie ─────────────────────────────────────────────────────── */
    .storie-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 20px;
    }
    .storia-card {
      border-radius: var(--radius);
      padding: 36px 28px;
      display: flex;
      flex-direction: column;
      border: 1px solid var(--border);
      transition: transform .25s, box-shadow .25s, border-color .25s;
    }
    .storia-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-lg);
    }
    .storia-mystery {
      background: var(--card);
      border-style: dashed;
    }
    .storia-mystery:hover { border-color: var(--accent); }
    .storia-cta {
      background: linear-gradient(135deg, rgba(245,158,11,.12) 0%, rgba(245,158,11,.04) 100%);
      border-color: rgba(245,158,11,.3);
      align-items: flex-start;
    }
    .storia-symbol {
      font-size: 2.8rem;
      font-weight: 900;
      color: var(--accent);
      font-family: var(--mono);
      line-height: 1;
      margin-bottom: 16px;
      opacity: .7;
    }
    .storia-label {
      font-size: .75rem;
      font-family: var(--mono);
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 10px;
    }
    .storia-desc {
      font-size: .9rem;
      color: var(--sub);
      line-height: 1.65;
      flex: 1;
    }

    /* ── Servizi ────────────────────────────────────────────────────── */
    #servizi { background: var(--card); }
    .servizi-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 20px;
    }
    .service-card {
      padding: 28px;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: var(--bg);
      transition: border-color .2s;
    }
    .service-card:hover { border-color: var(--accent); }
    .service-icon { font-size: 32px; margin-bottom: 14px; }
    .service-name { font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
    .service-desc { font-size: .88rem; color: var(--sub); line-height: 1.6; }

    /* ── Chi sono ───────────────────────────────────────────────────── */
    .chisono-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
    }
    .chisono-text p {
      color: var(--sub);
      line-height: 1.8;
      margin-bottom: 16px;
      font-size: .98rem;
    }
    .chisono-text p strong { color: var(--text); }
    .stack-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 24px;
    }
    .stack-item {
      font-family: var(--mono);
      font-size: 12px;
      padding: 6px 12px;
      border-radius: 8px;
      background: var(--card);
      border: 1px solid var(--border);
      color: var(--sub);
    }
    .chisono-values {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .value-row {
      display: flex;
      gap: 16px;
      align-items: flex-start;
      padding: 20px;
      border: 1px solid var(--border);
      border-radius: 12px;
      background: var(--card);
      transition: border-color .2s;
    }
    .value-row:hover { border-color: var(--accent); }
    .value-icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; }
    .value-title { font-weight: 700; font-size: .95rem; margin-bottom: 4px; }
    .value-desc { font-size: .85rem; color: var(--sub); line-height: 1.5; }

    /* ── Contatti ───────────────────────────────────────────────────── */
    #contatti { text-align: center; }
    .contact-box {
      max-width: 560px;
      margin: 0 auto;
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 48px;
    }
    .contact-box h2 { margin-bottom: 12px; }
    .contact-box p { color: var(--sub); margin-bottom: 32px; line-height: 1.7; }
    .contact-links { display: flex; flex-direction: column; gap: 14px; }
    .contact-link {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 16px 20px;
      border: 1px solid var(--border);
      border-radius: 10px;
      background: var(--bg);
      color: var(--text);
      font-weight: 500;
      font-size: 15px;
      transition: border-color .2s, color .2s;
    }
    .contact-link:hover { border-color: var(--accent); color: var(--accent); }
    .contact-link .ci { font-size: 20px; }

    /* ── Footer ─────────────────────────────────────────────────────── */
    footer {
      padding: 32px 5vw;
      border-top: 1px solid var(--border);
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px;
      font-size: 13px;
      color: var(--sub);
    }
    .footer-built {
      font-family: var(--mono);
      font-size: 11px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .dot-live {
      width: 7px; height: 7px;
      border-radius: 50%;
      background: var(--green);
      animation: pulse-green 2s ease-in-out infinite;
    }
    @keyframes pulse-green { 0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(34,197,94,.4)} 50%{opacity:.8;box-shadow:0 0 0 5px rgba(34,197,94,0)} }

    /* ── Mobile ─────────────────────────────────────────────────────── */
    @media (max-width: 768px) {
      nav .nav-links { display: none !important; }
      .hdr-logo { white-space: nowrap; }
      .hamburger { display: flex; }
      .nav-mobile {
        display: none;
        position: fixed;
        top: 64px; left: 0; right: 0;
        background: var(--card);
        border-bottom: 1px solid var(--border);
        padding: 16px 5vw;
        flex-direction: column;
        gap: 4px;
        z-index: 99;
      }
      .nav-mobile.open { display: flex; }
      .nav-mobile a {
        padding: 14px 16px;
        border-radius: 8px;
        font-size: 15px;
        color: var(--text);
        font-weight: 500;
      }
      .nav-mobile a:hover { background: var(--bg); color: var(--accent); }

      section { padding: 64px 5vw; }
      .chisono-layout { grid-template-columns: 1fr; gap: 40px; }
      .manifesto-grid { grid-template-columns: 1fr; }
      .contact-box { padding: 28px 20px; }
      footer { flex-direction: column; text-align: center; }
    }
  
    /* ── Barra superiore a pagine (06/11) ─────────────────────────────── */
    header { transition: height .25s, box-shadow .25s; }
    header.ridotta { height: 54px; box-shadow: 0 6px 24px rgba(0,0,0,.18); }
    nav .nav-links { display:flex; gap:6px; align-items:center; }
    nav .nav-links a { padding: 8px 12px; border-radius: 8px; font-size: 14px; position: relative; }
    nav .nav-links a:hover { color: var(--text); background: color-mix(in srgb, var(--accent) 8%, transparent); }
    nav .nav-links a.attiva { color: var(--text); }
    nav .nav-links a.attiva::after { content:''; position:absolute; left:12px; right:12px; bottom:2px; height:2px;
      background: var(--accent); border-radius:2px; }
    nav .nav-links a .div-num { font-family: var(--mono); font-size: 10px; color: var(--accent); margin-right: 5px; }
    nav .nav-links a.nav-cta { background: var(--accent); color: #000; font-weight: 600; margin-left: 8px; }
    nav .nav-links a.nav-cta:hover { background: var(--accent2); color:#000; }
    nav .nav-links a.nav-cta::after { display:none; }
    nav .nav-links a.lingua { font-family: var(--mono); font-size: 12px; border:1px solid var(--line, #ccc); margin-left:4px; }
    .nav-mobile a.attiva { color: var(--accent); }
    /* ── Testata delle pagine interne ─────────────────────────────────── */
    .pagina-testa { padding: 140px 5vw 40px; position: relative; overflow: hidden; }
    .contact-link { min-width:0; overflow-wrap:anywhere; }  /* l'indirizzo email lungo va a capo sui telefoni (Claude 06/11) */
    @media (max-width: 420px) { .contact-link { font-size: 14px; } }
    .pagina-testa::before { content:''; position:absolute; top:-40%; right:-10%; width:520px; height:520px;
      background: radial-gradient(circle, var(--glow) 0%, transparent 70%); pointer-events:none; }
    .pagina-testa h1 { font-size: clamp(2.2rem, 6vw, 4.2rem); font-weight: 900; letter-spacing: -.04em; line-height: 1.05; margin-bottom: 18px; }
    .pagina-testa h1 em { font-style: normal; color: var(--accent); }
    .pagina-testa p { color: var(--sub); max-width: 640px; font-size: 1.1rem; line-height: 1.7; }
    .pagina-testa .entra { opacity:0; transform:translateY(16px); animation: entra .7s cubic-bezier(.2,.7,.2,1) var(--d,0s) forwards; }
    .sezione-stretta { padding-top: 24px; }
    /* ── Home: le due divisioni ───────────────────────────────────────── */
    .porte { display:grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap: 22px; }
    .porta { display:block; color:inherit; background: var(--card); border:1px solid var(--border); border-radius: var(--radius);
      padding: 34px; position: relative; overflow:hidden; transition: transform .25s, border-color .25s, box-shadow .25s; }
    .porta:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: var(--shadow-lg); color:inherit; }
    .porta::after { content:''; position:absolute; inset:auto -30% -60% auto; width: 280px; height: 280px;
      background: radial-gradient(circle, var(--glow), transparent 70%); opacity:.6; }
    .porta-num { font-family: var(--mono); font-size: 12px; color: var(--accent); letter-spacing:.1em; text-transform: uppercase; }
    .porta h3 { font-size: 1.7rem; font-weight: 800; letter-spacing: -.03em; margin: 6px 0 10px; }
    .porta p { color: var(--sub); margin-bottom: 18px; }
    .porta ul { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-bottom: 20px; }
    .porta li { font-family: var(--mono); font-size: 12px; border:1px solid var(--border); border-radius: 6px; padding: 3px 8px; color: var(--sub); }
    .porta-vai { font-weight: 600; color: var(--accent); }
    @media (max-width: 1080px) { nav .nav-links a { padding: 8px 8px; font-size: 13px; } nav .nav-links a .div-num { display:none; } }

    /* ══ TEMA B — Tavola di progetto (06/11) ══════════════════════════════ */
    [data-theme="dark"] {
      --bg:#0d2340; --card:rgba(17,45,80,.82); --border:rgba(160,200,255,.18); --text:#e9f1fb; --sub:#9db3cf;
      --accent:#f5b041; --accent2:#e39a1f; --glow:rgba(245,176,65,.22); --blue:#7fb3ff; --green:#4ade80;
      --hdr-bg:rgba(13,35,64,.86); --radius:6px; --shadow:0 4px 24px rgba(0,0,0,.35); --shadow-lg:0 14px 40px rgba(0,0,0,.45);
    }
    body { background-color: var(--bg);
      background-image: linear-gradient(rgba(160,200,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(160,200,255,.11) 1px,transparent 1px),
        linear-gradient(rgba(160,200,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(160,200,255,.05) 1px,transparent 1px);
      background-size:120px 120px,120px 120px,24px 24px,24px 24px; }
    section { background: transparent !important; }
    header { border-bottom:1px solid var(--border); box-shadow:none; }
    nav .nav-links a.nav-cta { background:transparent; color:var(--accent); border:1px solid var(--accent); }
    nav .nav-links a.nav-cta:hover { background:var(--accent); color:#0d2340; }
    .btn-primary { color:#0d2340; }
    .project-card, .service-card, .porta, .manifesto-item { backdrop-filter: blur(2px); }
    footer { border-top:1px solid var(--border); background:rgba(9,26,48,.7) !important; }
    /* ── B CHIARA: tavola stampata su carta (tema predefinito) ── */
    :root, [data-theme="light"] {
      --bg:#f6f8fb; --card:#ffffff; --border:rgba(13,35,64,.16); --text:#0d2340; --sub:#4b5d78;
      --accent:#d27c0e; --accent2:#b06509; --glow:rgba(210,124,14,.16); --blue:#1d5fb8; --green:#15803d;
      --hdr-bg:rgba(246,248,251,.9); --radius:6px; --shadow:0 4px 18px rgba(13,35,64,.07); --shadow-lg:0 14px 34px rgba(13,35,64,.12);
    }
    [data-theme="light"] body { background-image: linear-gradient(rgba(29,95,184,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(29,95,184,.10) 1px,transparent 1px),
        linear-gradient(rgba(29,95,184,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(29,95,184,.045) 1px,transparent 1px); }
    [data-theme="light"] .schema .box { fill:#ffffff; }
    [data-theme="light"] .cartiglio { background:rgba(255,255,255,.75); }
    [data-theme="light"] footer { background:rgba(255,255,255,.8) !important; }
    [data-theme="light"] .btn-primary { color:#fff; }
    [data-theme="light"] nav .nav-links a.nav-cta:hover { color:#fff; }
    [data-theme="light"] .porta::after { opacity:.35; }
    .parola { display:inline-block; white-space:nowrap; }
    .tavola h1 em { white-space:nowrap; }
    .parola::after { content:''; display:inline-block; width:.07em; height:.8em; margin-left:.05em; background:var(--accent); vertical-align:-.04em; animation:lampeggia 1s steps(1) infinite; }
    /* testata tavola (home) */
    .tavola { display:grid; grid-template-columns:1.05fr 1fr; gap:40px; align-items:center; padding:120px 5vw 30px; max-width:1300px; }
    .rev { font:600 12px var(--mono); color:var(--accent); letter-spacing:.1em; }
    .tavola h1 { font-size:clamp(2.1rem,4.6vw,4.1rem); font-weight:900; letter-spacing:-.045em; line-height:1.02; margin:16px 0 20px; }
    .tavola h1 em { font-style:normal; color:var(--accent); }
    .tavola .sub { color:var(--sub); font-size:1.15rem; line-height:1.65; max-width:540px; }
    .tavola .hero-cta { margin-top:30px; }
    .schema { width:100%; height:auto; }
    .schema .tr { fill:none; stroke:var(--text); stroke-width:2; stroke-dasharray:600; stroke-dashoffset:600; animation:disegna 1.4s ease forwards; }
    .schema .tr.a { stroke:var(--accent); }
    @keyframes disegna { to { stroke-dashoffset:0; } }
    .schema .box { fill:rgba(13,35,64,.9); stroke:var(--text); stroke-width:1.6; opacity:0; animation:appari .5s forwards; }
    .schema .box.a { stroke:var(--accent); }
    .schema .lbl { fill:var(--text); font:600 13px var(--mono); opacity:0; animation:appari .5s forwards; }
    .schema .lbl.p { fill:var(--sub); font-size:10px; }
    .schema .dato { fill:var(--accent); }
    @keyframes appari { to { opacity:1; } }
    .cartiglio { margin:20px 5vw 10px; max-width:1300px; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border); background:rgba(9,26,48,.55); }
    .cartiglio div { padding:16px 18px; border-right:1px solid var(--border); }
    .cartiglio div:last-child { border-right:0; }
    .cartiglio small { display:block; font:600 11px var(--mono); color:var(--sub); letter-spacing:.08em; margin-bottom:4px; }
    .cartiglio b { font-size:15px; } .cartiglio .wip { color:var(--accent); }
    .cartiglio .wip::before { content:'● '; animation:lampeggia 1.4s steps(1) infinite; }
    .diario ul { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
    .diario li { border:1px solid var(--border); padding:16px; background:var(--card); }
    .diario time { display:block; font:600 11px var(--mono); color:var(--accent); }
    .diario li b { display:block; margin:4px 0; } .diario li span { color:var(--sub); font-size:14px; }
    .pagina-testa .section-tag::after { content:'  ·  REV. 2026-11  ·  IN EVOLUZIONE'; color:var(--sub); }
    html[lang="en"] .pagina-testa .section-tag::after { content:'  ·  REV. 2026-11  ·  WORK IN PROGRESS'; }
    /* ── telefono ── */
    @media (max-width: 900px) {
      .tavola { grid-template-columns:1fr; padding-top:100px; gap:10px; }
      .schema { max-width:440px; margin:0 auto; }
      .cartiglio { grid-template-columns:1fr 1fr; }
      .cartiglio div:nth-child(2) { border-right:0; }
      .cartiglio div:nth-child(-n+2) { border-bottom:1px solid var(--border); }
      .diario ul { grid-template-columns:1fr 1fr; }
    }
    @media (max-width: 560px) {
      section { padding:64px 5vw; }
      .pagina-testa { padding:110px 5vw 24px; }
      .pagina-testa .section-tag::after { content:''; }
      .diario ul { grid-template-columns:1fr; }
      .progetti-grid, .servizi-grid, .porte { grid-template-columns:1fr !important; }
      .hero-cta .btn { width:100%; justify-content:center; }
      .porta { padding:24px; } .porta h3 { font-size:1.4rem; }
      footer { flex-direction:column; gap:8px; text-align:center; }
    }
    @media (prefers-reduced-motion: reduce) {
      .schema .tr { animation:none; stroke-dashoffset:0; } .schema .box, .schema .lbl { animation:none; opacity:1; }
    }
