﻿
  :root{
    --bg:#0D1428;
    --bg-alt:#111B36;
    --surface:#16213F;
    --line:rgba(167,176,203,0.16);
    --text:#F1EFEA;
    --text-muted:#A7B0CB;
    --brand:#28293E;
    --brand-light:#6690F2; /* #5A5C7A */
    --warm:#ef6d58;
    --warm-light:#FF8C70;
    --whatsapp:#25D366;
    --whatsapp-light:#3DE07D;
    --font-display:'Epilogue', sans-serif;
    --font-body:'Space Grotesk',system-ui,sans-serif;
    --font-mono:'IBM Plex Mono', monospace;
    --container:1160px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background-color:var(--bg);
    background-image:radial-gradient(rgba(167,176,203,0.10) 1px, transparent 1.4px);
    background-size:26px 26px;
    color:var(--text);
    font-family:var(--font-body), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size:16px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit;}
  a:focus-visible, button:focus-visible{outline:2px solid var(--warm); outline-offset:3px;}
  img,svg{display:block;max-width:100%;}

  .wrap{max-width:var(--container); margin:0 auto; padding:0 24px; position:relative; z-index:2;}

  .eyebrow {
    font-family:var(--font-mono);
    font-size:0.76rem;
    letter-spacing:0.11em;
    text-transform:uppercase;
    color:var(--brand-light);
    display:flex; align-items:center; gap:9px;
    margin-bottom:18px;
  }
  .eyebrow::before {
    content:"";
    width:6px; height:6px; border-radius:50%; flex-shrink:0;
    background:var(--warm);
    box-shadow:0 0 0 3px rgba(239,109,88,0.18);
    animation:p 2.4s infinite
  }
  @keyframes p{70%{box-shadow:0 0 0 10px rgba(84,227,165,0)}100%{box-shadow:0 0 0 0 rgba(84,227,165,0)}}

  h1,h2,h3{font-family:var(--font-display), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-weight:800; letter-spacing:-0.01em;}

  /* cursor glow */
  .cursor-glow{
    position:fixed; top:0; left:0;
    width:520px; height:520px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(102,144,242,0.18), rgba(102,144,242,0) 70%);
    transform:translate(-50%,-50%);
    pointer-events:none;
    z-index:5;
    mix-blend-mode:screen;
    opacity:0;
    transition:opacity .4s ease;
  }
  .cursor-glow.active{opacity:1;}

  /* topbar */
  header.topbar{
    position:fixed; top:0; left:0; right:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px;
    background:linear-gradient(to bottom, rgba(13,20,40,0.94), rgba(13,20,40,0));
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    animation:topbar-entrance .6s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text);}
  .logo-mark{flex-shrink:0; display:block;}
  .logo-word{font-family:var(--font-display); font-weight:600; font-size:1.05rem;}
  .logo-tld{font-family:var(--font-mono); font-weight:400; font-size:0.84rem; color:var(--text-muted);}

  .nav{display:flex; align-items:center; gap:26px;}
  .nav a{text-decoration:none;}
  .nav a:not(.cv-link){
    font-family:var(--font-mono); font-size:0.83rem; color:var(--text-muted);
    transition:color .18s ease;
  }
  .nav a:not(.cv-link):hover{color:var(--text);}
  .cv-link{
    font-family:var(--font-mono); font-size:0.8rem; color:var(--text-muted);
    border:1px solid var(--line); padding:9px 16px;
    border-radius:4px; transition:border-color .18s, color .18s;
    white-space:nowrap;
  }
  .cv-link:hover{border-color:var(--brand-light); color:var(--text);}

  .nav-toggle{
    display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; background:none; border:none; cursor:pointer; z-index:70;
  }
  .nav-toggle span{display:block; width:22px; height:2px; background:var(--text); border-radius:2px; transition:transform .25s ease, opacity .2s ease;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  @keyframes topbar-entrance{
    0%{
      transform:translateY(-100%);
      opacity:0;
    }
    100%{
      transform:translateY(0);
      opacity:1;
    }
  }
  header.topbar .logo{
    animation:logo-elastic .8s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  @keyframes logo-elastic{
    0%{
      transform:scale(0.8);
      opacity:0;
    }
    100%{
      transform:scale(1);
      opacity:1;
    }
  }
  .logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text);}
  .logo-mark{flex-shrink:0; display:block;}
  .logo-word{font-family:var(--font-display), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-weight:700; font-size:1.05rem;}
  .logo-tld{font-family:var(--font-mono); font-weight:400; font-size:0.84rem; color:var(--text-muted);}

  .nav{display:flex; align-items:center; gap:26px;}
  .nav a{text-decoration:none;}
  .nav a:not(.cv-link){
    font-family:var(--font-mono); font-size:0.83rem; color:var(--text-muted);
    transition:color .18s cubic-bezier(0.34, 1.56, 0.64, 1), transform .18s cubic-bezier(0.34, 1.56, 0.64, 1);
    display:inline-block;
  }
  .nav a:not(.cv-link):hover{
    color:var(--text);
    transform:translateY(-2px);
  }
  .cv-link{
    font-family:var(--font-mono); font-size:0.8rem; color:var(--text-muted);
    border:1px solid var(--line); padding:9px 16px;
    border-radius:4px; transition:border-color .2s cubic-bezier(0.34, 1.56, 0.64, 1), color .2s cubic-bezier(0.34, 1.56, 0.64, 1), transform .2s cubic-bezier(0.34, 1.56, 0.64, 1);
    white-space:nowrap;
    display:inline-block;
  }
  .cv-link:hover{
    border-color:var(--warm);
    color:var(--text);
    transform:translateY(-3px);
  }

  .nav-toggle{
    display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; background:none; border:none; cursor:pointer; z-index:70;
    transition:transform .2s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .nav-toggle:hover{
    transform:scale(1.1);
  }
  .nav-toggle:active{
    transform:scale(0.92);
  }
  .nav-toggle span{
    display:block; width:22px; height:2px; background:var(--text); border-radius:2px;
    transition:transform .25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .2s ease;
  }
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* hero */
  .hero{
    min-height:100svh;
    display:flex; align-items:center;
    position:relative;
    padding:130px 24px 80px;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(800px circle at 92% 10%, rgba(105,144,242,0.16), transparent 62%),
      radial-gradient(800px circle at 10% 92%, rgba(255,140,66,0.13), transparent 62%);
    pointer-events:none;
  }
  .hero-mark{
    position:absolute; top:52%; left:50%;
    transform:translate(-50%,-50%);
    font-family:var(--font-display); font-weight:700;
    font-size:clamp(6rem, 24vw, 17rem);
    line-height:1; letter-spacing:-0.02em; white-space:nowrap;
    color:transparent;
    -webkit-text-stroke:1.5px rgba(102,144,242,0.16);
    pointer-events:none; user-select:none; z-index:0;
    transition:transform .5s cubic-bezier(.2,.7,.3,1);
    will-change:transform;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1fr; gap:56px; align-items:center; width:100%;
  }
  .hero h1{
    font-size:clamp(2.15rem, 6.4vw, 3.7rem);
    line-height:1.08;
    max-width:16ch;
    margin-bottom:22px;
  }
  .hero h1 .hl{color:var(--warm);}
  .hero p.lead{
    font-size:1.08rem; color:var(--text-muted); max-width:46ch; margin-bottom:32px;
  }
  .cta-row{display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-bottom:22px;}
  .btn-primary{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--surface); color:var(--text);
    border:1px solid var(--line);
    font-family:var(--font-mono), monospace; font-weight:600; font-size:0.94rem;
    padding:15px 25px; border-radius:4px; text-decoration:none;
    min-height:50px;
    transition:border-color .18s ease, background .18s ease, transform .18s ease;
  }
  .btn-primary svg{width:17px; height:17px; flex-shrink:0; color:var(--whatsapp);}
  .btn-primary:hover{border-color:var(--whatsapp-light); background:rgba(37,211,102,0.08);}
  .btn-primary .arrow{transition:transform .18s ease;}
  .btn-primary:hover .arrow{transform:translateX(3px);}
  .link-secondary{
    font-family:var(--font-mono); font-size:0.9rem; color:var(--text-muted);
    text-decoration:underline; text-underline-offset:4px; padding:12px 4px;
  }
  .link-secondary:hover{color:var(--text);}
  .cta-gloss {display:inline-flex;align-items:center;min-height:50px;gap:.55rem;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;text-decoration:none;padding:.7rem 1.15rem;border:1px solid var(--line);transition:.25s}
  .cta-gloss {
    position: relative;
    overflow: hidden;
    background: linear-gradient(120deg, var(--bg), var(--bg-alt));
    border: 1px solid color-mix(in srgb, var(--surface) 80%, #fff);
    color: #fff;
    box-shadow: 0 10px 34px -14px var(--surface);
    transition: all 0.3s ease;
  }
  /* Riflesso di luce superiore (Effetto Gloss) */
  .cta-gloss::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.15) 0%,
      rgba(255, 255, 255, 0.02) 100%
    );
    pointer-events: none;
  }
  /* Bagliore luminoso all'hover */
  .cta-gloss:hover {
    box-shadow: 0 12px 35px -8px color-mix(in srgb, var(--surface) 90%, #fff);
    border-color: color-mix(in srgb, var(--surface) 50%, #fff);
    transform: translateY(-2px);
  }
  /* .cta-gloss {background:linear-gradient(120deg,#0D1428,#111B36);border-color:transparent;color:#fff;box-shadow:0 10px 34px -14px var(--brand-light)} */
  .cta-gloss:hover {transform:translateY(-2px)}

  /* orbit graphic */
  .orbit-wrap{
    display:flex; justify-content:center; align-items:center;
    width:100%; max-width:560px; margin:0 auto;
    will-change:transform;
    transition:transform .4s cubic-bezier(.2,.7,.3,1);
  }
  .orbit-wrap svg{width:100%; height:auto;}
  .ring{transform-box:fill-box; transform-origin:center;}
  .ring-outer{animation:spin 70s linear infinite;}
  .ring-mid{animation:spin 40s linear infinite reverse;}
  .ring-inner{animation:spin 26s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg);}}
  .node{fill:none; stroke:rgba(190,198,222,0.75); stroke-width:2; transition:fill .7s ease, stroke .7s ease, filter .7s ease;}
  .node.is-active{fill:var(--warm); stroke:none; filter:drop-shadow(0 0 11px rgba(239,109,88,0.9));}
  .spoke{stroke:rgba(239,109,88,0.20); stroke-width:1.3; transition:stroke .7s ease, stroke-width .7s ease;}
  .spoke.is-active{stroke:rgba(239,109,88,0.65); stroke-width:1.8;}
  .pulse{
    fill:var(--warm); opacity:0;
    offset-path:path('M0 0 L0 -172');
    animation:travel 3.4s ease-in-out infinite;
  }
  @keyframes travel{
    0%{offset-distance:0%; opacity:0;}
    8%{opacity:1;}
    85%{opacity:1;}
    100%{offset-distance:100%; opacity:0;}
  }

  .ai-tag{
    display:inline-flex; align-items:center; gap:6px;
    font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--warm); border:1px solid rgba(239,109,88,0.35); border-radius:100px;
    padding:4px 11px 4px 9px; white-space:nowrap;
  }
  .ai-tag .dot-warm{width:6px; height:6px; box-shadow:none;}
  .svc h3 .ai-tag{vertical-align:middle; margin-left:2px; transform:translateY(-2px);}

  /* wave animation at hero bottom */
  .wave-divider{
    position:absolute; bottom:0; left:0; right:0; z-index:3;
    height:160px; width:100vw;
    background:transparent;
    overflow:hidden;
    margin-left:calc(-50vw + 50%);
  }
  .wave-divider svg{
    position:absolute; bottom:0; left:0;
    width:100%; height:100%;
    display:block;
  }
  .wave-path{
    fill:none; stroke-width:2.5; stroke-linecap:round;
  }
  .wave-path-1{
    stroke:var(--surface);
    animation:wave-flow 12s ease-in-out infinite;
  }
  .wave-path-2{
    stroke:var(--brand);
    opacity:0.5;
    animation:wave-flow 14s ease-in-out infinite;
    animation-delay:1.5s;
  }
  @keyframes wave-flow{
    0%, 100%{
      d: path('M0,80 C240,40 480,120 720,80 C960,40 1200,120 1440,80 L1440,160 L0,160 Z');
    }
    25%{
      d: path('M0,60 C240,90 480,30 720,60 C960,90 1200,30 1440,60 L1440,160 L0,160 Z');
    }
    50%{
      d: path('M0,100 C240,30 480,130 720,100 C960,30 1200,130 1440,100 L1440,160 L0,160 Z');
    }
    75%{
      d: path('M0,60 C240,90 480,30 720,60 C960,90 1200,30 1440,60 L1440,160 L0,160 Z');
    }
  }

  @media (prefers-reduced-motion: reduce){
    .ring{animation:none;}
    .pulse{display:none;}
    .wave-path-1, .wave-path-2{animation:none;}
    .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
  }


  .band-grid {margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}
  .band-grid::before {content:"";position:absolute;inset:0;pointer-events:none;z-index:0;

  }
  .grid-lines{
    position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.35;
    background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size:72px 72px;
    /* mask-image:linear-gradient(#000,transparent 85%) */
  }

  /* section shell */
  section{padding:96px 24px; position:relative; scroll-margin-top:88px;}
  .band-alt{background:var(--bg-alt);}
  .band-dark{background:#0A0F1E;}
  section .eyebrow{margin-bottom:20px;}
  section h2{font-size:clamp(1.55rem, 3.6vw, 2.35rem); margin-bottom:8px; font-weight:800;}

  /* ---------------- manifesto (sezione chiara, pausa nel ritmo scuro) ---------------- */
  .section-light{
    background:#F5F2EC;
    background-image:radial-gradient(rgba(20,32,61,0.05) 1px, transparent 1.4px);
    background-size:26px 26px;
  }
  .section-light::before{
    content:"";
    position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(640px circle at 88% 0%, rgba(25,68,165,0.06), transparent 60%);
  }
  .manifesto blockquote{
    border-left:3px solid var(--brand);
    padding-left:28px;
    max-width:60ch;
  }
  .manifesto p{
    font-size:1.18rem; color:#4E5776; line-height:1.65;
  }
  .manifesto p::first-letter{
    font-family:var(--font-display); font-weight:700; font-size:3.1rem;
    color:var(--brand); float:left; line-height:0.75; padding-right:10px; padding-top:4px;
  }
  .manifesto strong{color:#14203D; font-weight:500;}
  .section-light .eyebrow{color:var(--brand);}
  .section-light .eyebrow::before{background:#D9711F; box-shadow:0 0 0 3px rgba(217,113,31,0.18);}

  /* servizi */
  .svc-list{margin-top:36px;}
  .svc{
    padding:34px 20px; margin:0 -20px; border-top:1px solid var(--line);
    border-radius:10px;
    display:grid; grid-template-columns:1fr; gap:12px;
    transition:background .2s ease;
  }
  .svc:last-child{border-bottom:1px solid var(--line);}
  .svc:hover{background:rgba(239,109,88,0.05);}
  .svc h3{font-size:1.4rem; font-weight:700; margin-bottom:2px;}
  .svc p{color:var(--text-muted); max-width:64ch; font-size:1rem;}

  /* portfolio */
  .work-list{margin-top:36px; display:flex; flex-direction:column; gap:18px;}
  .work-item{
    display:block;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:30px 28px;
    text-decoration:none; color:inherit;
    transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
  }
  .work-item:hover{transform:translateY(-4px); border-color:rgba(102,144,242,0.45); box-shadow:0 18px 40px -22px rgba(0,0,0,0.6);}
  .work-icon{
    width:44px; height:44px; border-radius:10px;
    background:rgba(239,109,88,0.14); color:var(--warm);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:18px;
  }
  .work-icon svg{width:22px; height:22px;}
  .work-item.is-ai .work-icon{background:rgba(239,109,88,0.18); color:var(--warm);}
  .work-top{display:flex; justify-content:space-between; align-items:center; gap:12px 16px; flex-wrap:wrap; margin-bottom:10px;}
  .work-top .title-group{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
  .work-item h3{font-size:1.28rem; font-weight:700;}
  .work-item .meta{font-family:var(--font-mono); font-size:0.76rem; color:var(--brand-light); white-space:nowrap;}
  .work-item p{color:var(--text-muted); font-size:0.98rem; max-width:62ch;}
  .work-item .go{font-family:var(--font-mono); font-size:0.82rem; color:var(--warm);}
  .stack{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
  .stack span{
    font-family:var(--font-mono); font-size:0.72rem; color:var(--text-muted);
    border:1px solid var(--line); padding:5px 11px; border-radius:100px;
  }
  .portfolio-note, .service-note {margin-top:28px; color:var(--text-muted); font-size:0.95rem;}
  .portfolio-note {max-width:64ch;}

  .site-archive{margin-top:24px;}
  .mini-archive{border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,0.03); overflow:hidden;}
  .mini-archive summary{
    list-style:none;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:16px 18px;
    cursor:pointer;
    font-family:var(--font-mono); font-size:0.82rem; letter-spacing:0.03em;
    color:var(--text-muted);
    transition:color .2s ease, background .2s ease, border-color .2s ease;
    border-bottom:1px solid transparent;
  }
  .mini-archive summary::-webkit-details-marker{display:none;}
  .mini-archive summary:hover{color:var(--text); background:rgba(255,255,255,0.03);}
  .archive-toggle-pill{
    display:inline-flex; align-items:center; gap:8px;
    padding:8px 11px;
    color:var(--text);
    flex-shrink:0;
    transition:transform .2s ease, border-color .2s ease, background .2s ease;
  }
  .archive-toggle-label{font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted);}
  .archive-toggle-icon{display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:rgba(239,109,88,0.14); color:var(--warm); transition:transform .25s ease, background .25s ease;}
  .archive-toggle-icon svg{width:14px; height:14px;}
  .mini-archive summary:hover .archive-toggle-pill{transform:translateY(-1px); border-color:rgba(102,144,242,0.35);}
  .mini-archive[open] .archive-toggle-icon{transform:rotate(180deg); background:rgba(239,109,88,0.22);}
  .mini-archive-panel{
    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-8px);
    transition-duration: 1.5s, 0.6s, 0.6s;
    transition: max-height 1.5s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
  }
  .mini-archive[open] .mini-archive-panel{
    max-height:980px;
    opacity:1;
    transform:translateY(0);
  }
  .mini-archive-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:12px;
    padding:18px;
  }
  .mini-archive-card{
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px;
    background:rgba(255,255,255,0.02);
    opacity:0;
    transform:translateY(12px);
    transition:transform .25s ease, border-color .2s ease, opacity .25s ease;
  }
  .mini-archive-card:hover{transform:translateY(-2px); border-color:rgba(102,144,242,0.35);}
  .mini-archive[open] .mini-archive-card{opacity:1; transform:translateY(0);}
  .mini-archive[open] .mini-archive-card:nth-child(1){transition-delay:0ms;}
  .mini-archive[open] .mini-archive-card:nth-child(2){transition-delay:70ms;}
  .mini-archive[open] .mini-archive-card:nth-child(3){transition-delay:140ms;}
  .mini-archive[open] .mini-archive-card:nth-child(4){transition-delay:210ms;}
  .mini-archive[open] .mini-archive-card:nth-child(5){transition-delay:280ms;}
  .mini-archive[open] .mini-archive-card:nth-child(6){transition-delay:350ms;}
  .mini-archive-card h4{font-size:0.9rem; margin-bottom:6px; font-weight:700;color:var(--text);}
  .mini-archive-card p{font-size:0.85rem; color:var(--text-muted); line-height:1.55;}
  .mini-archive-card .descrizione{margin-bottom:8px;}
  .mini-archive-card .web-address {margin-top:8px;}
  .mini-archive-card .web-address a {
    font-family: var(--font-mono);
    font-size: 0.76rem;
    color: var(--brand-light);
    white-space: nowrap;
    text-decoration: none;
  }

  @media (max-width: 640px){
    .mini-archive summary{padding:14px 15px;}
    .mini-archive-grid{grid-template-columns:1fr; padding:15px;}
  }

  /* come lavoro */
  .terms-list{margin-top:44px; position:relative; display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:32px;}
  .term{
    display:flex; flex-direction:column; gap:16px; position:relative;
    padding:0; border:none;
    transition:transform .22s ease;
  }
  .term:hover{transform:translateY(-4px);}
  .term-icon{
    width:48px; height:48px; border-radius:12px;
    background:rgba(239,109,88,0.16); color:var(--warm);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .term-icon svg{width:24px; height:24px;}
  .term-icon .euro-icon{
    font-family:var(--font-display), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size:1.2rem;
    font-weight:700;
    line-height:1;
  }
  .term .label{font-family:var(--font-display), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size:1.1rem; font-weight:700; letter-spacing:-0.01em; text-transform:none; color:var(--text);}
  .term p{color:var(--text-muted); font-size:0.95rem; max-width:50ch; line-height:1.6;}
    .d {
      color:#0D1428;
    color:#111B36;
    color:#16213F;
    }
  /* contatti */
  .contact {background:var(--bg);}
  .contact .wrap {background: var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(32px,5vw,64px);text-align:center;justify-content:center;}
  .contact p.lead{color:var(--text-muted); max-width:72ch; margin:14px auto 36px; font-size:1.06rem;background: var(--surface);text-align:center;}
  .contact-actions{display:flex; flex-wrap:wrap; gap:16px; margin-bottom:28px;background: var(--surface); justify-content:center;}
  .contact .tie-back{
    font-size:0.94rem; color:var(--text-muted); border-top:1px solid var(--line); padding-top:24px; max-width:80ch; margin:0 auto; text-align:center;
  }
  .contact .tie-back a{color:var(--warm); text-decoration:underline; text-underline-offset:3px;}
  .center {display:flex; justify-content:center; align-items:center;}
  footer{
    padding:40px 24px 40px; position:relative; background:var(--surface); border-top:1px solid var(--line);
    display:flex; flex-wrap:wrap; gap:14px 24px; justify-content:space-between; align-items:flex-start;
    font-family:var(--font-mono); font-size:0.76rem; color:rgba(255,255,255,0.35);
  }
  footer .foot-links a{text-decoration:none; color:rgba(255,255,255,0.4); border-bottom:1px solid rgba(239,109,88,0.25);}
  footer .foot-links a:hover{color:var(--warm); border-color:var(--warm);}

  /* reveal */
  .reveal{opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* staggered reveals */
  .stagger > *{opacity:0; transition:opacity .5s ease, transform .5s ease;}
  .stagger-left > *{transform:translateX(-22px);}
  .stagger-right > *{transform:translateX(22px);}
  .stagger-scale > *{transform:scale(0.94) translateY(10px);}
  .stagger.in > *{opacity:1; transform:none;}
  .stagger.in > *:nth-child(1){transition-delay:0ms;}
  .stagger.in > *:nth-child(2){transition-delay:100ms;}
  .stagger.in > *:nth-child(3){transition-delay:200ms;}
  .stagger.in > *:nth-child(4){transition-delay:300ms;}
  @media (prefers-reduced-motion: reduce){
    .stagger > *{opacity:1 !important; transform:none !important; transition:none !important;}
  }

  /* mobile nav */
  @media (max-width:859px){
    .nav-toggle{display:flex;}
    .nav-toggle:active{
      transform:scale(0.95);
    }
    .nav{
      position:fixed; inset:0; z-index:65;
      background:var(--bg);
      flex-direction:column; justify-content:center; align-items:center; gap:30px;
      transform:translateX(100%); 
      transition:transform .5s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    .nav.open{
      transform:translateX(0);
      animation:nav-elastic .5s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    @keyframes nav-elastic{
      0%{
        transform:translateX(100%);
      }
      70%{
        transform:translateX(-20px);
      }
      100%{
        transform:translateX(0);
      }
    }
    .nav a:not(.cv-link){
      font-size:1.35rem; color:var(--text);
      transition:transform .3s cubic-bezier(0.34, 1.56, 0.64, 1), color .2s ease;
    }
    .nav a:not(.cv-link):hover{
      transform:scale(1.08);
    }
    .nav .cv-link{margin-top:10px;}
  }

  /* desktop */
  @media (min-width:860px){
    .hero .wrap{grid-template-columns:1.15fr 1fr;}
    .svc{grid-template-columns:280px 1fr; gap:32px; align-items:baseline;}
    .work-list{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
    .term{grid-template-columns:220px 1fr; gap:32px; align-items:baseline;}
  }

