:root {
  --bg:     #18102B;
  --bg2:    #1e1336;
  --text:   #F0EDE6;
  --muted:  #7a6d99;
  --accent: #C9FF47;
  --border: rgba(201,255,71,0.1);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--bg); color:var(--text);
  font-family:'Syne',sans-serif; font-size:16px; line-height:1.6;
  overflow-x:hidden; cursor:none;
}
a { color:inherit; }
img { max-width:100%; display:block; }

/* CURSOR */
#cur,#ring { position:fixed;border-radius:50%;pointer-events:none;z-index:9999;top:0;left:0;will-change:transform; }
#cur  { width:8px;height:8px;background:var(--accent); }
#ring { width:36px;height:36px;border:1px solid rgba(201,255,71,.4);transition:width .2s,height .2s,border-color .2s; }
body.hovering #ring { width:56px;height:56px;border-color:var(--accent); }

/* PROGRESS */
#prog { position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:1000;width:0; }

/* NAV */
nav { position:fixed;top:0;width:100%;z-index:500;padding:28px 52px;display:flex;align-items:center;justify-content:space-between;transition:padding .4s,background .4s; }
nav.scrolled { padding:18px 52px;background:rgba(24,16,43,.92);backdrop-filter:blur(24px);border-bottom:1px solid var(--border); }
.nav-logo { font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:.12em;text-decoration:none;color:var(--text); }
.nav-logo span { color:var(--accent); }
.nav-links { display:flex;gap:40px;list-style:none; }
.nav-links a { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s; }
.nav-links a:hover { color:var(--accent); }
.nav-burger { display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:none;padding:4px; }
.nav-burger span { display:block;width:24px;height:1px;background:var(--text);transition:transform .3s,opacity .3s; }

/* HERO */
#home { min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 52px 88px;position:relative;overflow:hidden; }
.hero-ghost { position:absolute;bottom:-.15em;left:-.02em;font-family:'Bebas Neue',sans-serif;font-size:clamp(160px,22vw,340px);color:rgba(255,255,255,.025);pointer-events:none;user-select:none;letter-spacing:-.02em;line-height:1;white-space:nowrap; }
.hero-label { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:28px;display:flex;align-items:center;gap:14px; }
.hero-label::before { content:'';width:40px;height:1px;background:var(--accent); }
.hero-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(80px,13vw,176px);line-height:.88;letter-spacing:-.01em; }
.hero-title .dim { color:rgba(240,237,230,.22); }
.hero-bottom { display:flex;align-items:flex-end;justify-content:space-between;margin-top:64px;gap:40px; }
.hero-desc { max-width:340px;color:var(--muted);font-size:15px;line-height:1.75;border-left:2px solid var(--accent);padding-left:20px; }
.hero-cta { display:inline-flex;align-items:center;gap:14px;font-family:'Syne Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text);text-decoration:none;border:1px solid var(--border);padding:18px 36px;transition:background .25s,color .25s,border-color .25s;white-space:nowrap; }
.hero-cta:hover { background:var(--accent);color:var(--bg);border-color:var(--accent); }
.hero-cta .arr { transition:transform .25s; }
.hero-cta:hover .arr { transform:translateX(6px); }
.scroll-ind { position:absolute;right:52px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px; }
.scroll-ind span { font-family:'Syne Mono',monospace;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);writing-mode:vertical-rl; }
.scroll-ind .tick { width:1px;height:72px;background:linear-gradient(to bottom,var(--accent),transparent);animation:tickAnim 1.8s ease-in-out infinite; }
@keyframes tickAnim { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.3;transform:scaleY(.4)} }

/* PAGE HERO (pagine interne) */
.page-hero { min-height:50vh;display:flex;align-items:flex-end;padding:0 52px 80px;border-bottom:1px solid var(--border); }
.page-hero-inner { max-width:800px; }

/* MARQUEE */
.marquee-wrap { padding:26px 0;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border); }
.marquee-track { display:flex;gap:56px;width:max-content;animation:marquee 24s linear infinite; }
.marquee-item { font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:.08em;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:56px; }
.mdot { width:5px;height:5px;background:var(--accent);border-radius:50%;flex-shrink:0; }
@keyframes marquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* CHIP */
.chip { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:40px;display:flex;align-items:center;gap:14px; }
.chip::after { content:'';width:40px;height:1px;background:var(--accent); }

/* SEC HEAD */
.sec-head { font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,7vw,96px);line-height:.92;letter-spacing:-.01em; }
.sec-head .acc { color:var(--accent); }

/* HOME ABOUT */
.home-about { display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:120px 52px; }
.ha-left { display:flex;flex-direction:column;gap:28px;padding-right:80px; }
.ha-left p { color:var(--muted);font-size:15px;line-height:1.75; }
.ha-right { display:flex;flex-direction:column;gap:1px;background:var(--border); }
.ha-card { background:var(--bg);padding:28px 32px;display:flex;justify-content:space-between;align-items:center; }
.ha-card .lbl { font-family:'Syne Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted); }
.ha-card .val { font-size:13px;font-weight:600; }
.ha-card .on { color:var(--accent); }

/* BUTTONS */
.btn-outline { display:inline-flex;align-items:center;gap:10px;font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text);text-decoration:none;border:1px solid var(--border);padding:14px 28px;transition:background .25s,color .25s,border-color .25s;width:fit-content; }
.btn-outline:hover { background:var(--accent);color:var(--bg);border-color:var(--accent); }
.cta-btn { display:inline-flex;align-items:center;gap:14px;font-family:'Bebas Neue',sans-serif;font-size:clamp(22px,3vw,40px);color:var(--text);text-decoration:none;border:1px solid var(--border);padding:22px 52px;margin-bottom:56px;transition:background .25s,color .25s,border-color .25s; }
.cta-btn:hover { background:var(--accent);color:var(--bg);border-color:var(--accent); }
.center-link { display:flex;justify-content:center;margin-top:64px; }

/* STATS */
.stats-strip { display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border); }
.stat-cell { padding:56px 52px;text-align:center;border-right:1px solid var(--border); }
.stat-cell:last-child { border-right:none; }
.stat-num { font-family:'Bebas Neue',sans-serif;font-size:80px;color:var(--accent);line-height:1;margin-bottom:8px; }
.stat-lbl { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted); }

/* CHI SONO STICKY */
#chi-sono { padding:0; }
.cs-grid { display:grid;grid-template-columns:1fr 1fr; }
.cs-left { position:sticky;top:0;height:100vh;padding:80px 52px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--border); }
.cs-left h2 { font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,5.5vw,88px);line-height:.95;margin-bottom:28px; }
.cs-left h2 .acc { color:var(--accent); }
.cs-left .teaser { color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:auto; }
.cs-meta { margin-top:48px; }
.cs-meta-row { display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border); }
.cs-meta-row .lbl { font-family:'Syne Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted); }
.cs-meta-row .val { font-size:13px;font-weight:600; }
.cs-meta-row .on { color:var(--accent); }
.cs-right { padding:120px 52px 160px;display:flex;flex-direction:column;gap:96px; }
.cs-block { opacity:0;transform:translateY(48px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1); }
.cs-block.vis { opacity:1;transform:translateY(0); }
.cs-block .yr { font-family:'Syne Mono',monospace;font-size:10px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:12px; }
.cs-block h3 { font-family:'Bebas Neue',sans-serif;font-size:36px;color:var(--accent);margin-bottom:16px; }
.cs-block p { color:var(--muted);font-size:15px;line-height:1.85;max-width:480px; }

/* PORTFOLIO */
.port-section { padding:0 0 120px; }
.port-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:2px; }
.port-item { position:relative;aspect-ratio:4/3;background:#1a1030;overflow:hidden; }
.port-ph { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#333;background:linear-gradient(135deg,#1a1030,#22153a); }
.port-ph::before { content:attr(data-n);position:absolute;font-family:'Bebas Neue',sans-serif;font-size:120px;color:rgba(255,255,255,.04);pointer-events:none; }
.port-ov { position:absolute;inset:0;background:linear-gradient(to top,rgba(24,16,43,.97) 0%,rgba(24,16,43,.4) 60%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:32px;opacity:0;transition:opacity .3s; }
.port-item:hover .port-ov { opacity:1; }
.port-ov h3 { font-family:'Bebas Neue',sans-serif;font-size:28px;margin-bottom:6px; }
.port-ov p { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent); }

/* PDF BANNER */
.pdf-banner { display:flex;justify-content:space-between;align-items:center;padding:48px 52px;background:var(--bg2);border-bottom:1px solid var(--border); }
.pdf-text p { color:var(--muted);font-size:14px;margin-top:12px; }

/* BLOG */
.home-blog { padding:120px 52px;background:var(--bg2); }
.blog-archive { padding:80px 52px 120px;background:var(--bg2); }
.blog-row { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:64px; }
.blog-row-1 { grid-template-columns:1fr; }
.blog-row-2 { grid-template-columns:repeat(2,1fr); }
.blog-card { background:var(--bg2);padding:44px 40px;display:flex;flex-direction:column;gap:18px;transition:background .25s; }
.blog-card:hover { background:#1a1030; }
.blog-card h2,
.blog-card h3 { font-family:'Bebas Neue',sans-serif;font-size:28px;line-height:1.05;flex:1; }
.blog-card h2 a,
.blog-card h3 a { text-decoration:none;color:var(--text); }
.blog-card h2 a:hover { color:var(--accent); }
.blog-tag { font-family:'Syne Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent); }
.blog-link { display:inline-flex;align-items:center;gap:8px;font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s; }
.blog-link:hover { color:var(--accent); }
.blog-date { font-family:'Syne Mono',monospace;font-size:10px;color:var(--muted);padding-top:18px;border-top:1px solid var(--border); }
.excerpt { color:var(--muted);font-size:14px;line-height:1.7; }
.pagination { grid-column:1/-1;display:flex;gap:8px;justify-content:center;padding:48px 0; }
.pagination a,
.pagination span { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.12em;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:10px 18px;transition:background .2s,color .2s; }
.pagination .current { background:var(--accent);color:var(--bg);border-color:var(--accent); }
.pagination a:hover { color:var(--accent); }

/* SINGLE POST */
.single-post { max-width:760px;margin:0 auto;padding:160px 52px 120px; }
.post-header { margin-bottom:64px; }
.post-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,7vw,88px);line-height:.92;margin:20px 0 24px; }
.post-meta { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;gap:24px; }
.post-content { color:var(--muted);font-size:17px;line-height:1.85; }
.post-content h2 { font-family:'Bebas Neue',sans-serif;font-size:48px;color:var(--text);margin:56px 0 20px; }
.post-content h3 { font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--accent);margin:40px 0 16px; }
.post-content p { margin-bottom:24px; }
.post-content a { color:var(--accent); }
.post-content blockquote { border-left:2px solid var(--accent);padding-left:24px;margin:40px 0;font-size:20px;color:var(--text); }
.post-content ul,
.post-content ol { margin:24px 0 24px 24px; }
.post-content li { margin-bottom:8px; }
.post-footer { margin-top:80px;padding-top:40px;border-top:1px solid var(--border); }

/* CONTATTI */
#contatti { min-height:90vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:120px 52px;position:relative;overflow:hidden; }
.bg-ghost { position:absolute;bottom:-.1em;left:50%;transform:translateX(-50%);font-family:'Bebas Neue',sans-serif;font-size:clamp(140px,20vw,300px);color:rgba(255,255,255,.025);pointer-events:none;user-select:none;white-space:nowrap;z-index:0; }
.contatti-inner { position:relative;z-index:1;max-width:680px; }
.contatti-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(64px,11vw,128px);line-height:.9;margin-bottom:36px; }
.contatti-title .acc { color:var(--accent);display:block; }
.contatti-desc { color:var(--muted);font-size:15px;line-height:1.75;margin-bottom:52px; }
.socials { display:flex;gap:36px;justify-content:center; }
.socials a { font-family:'Syne Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s; }
.socials a:hover { color:var(--accent); }

/* HOME CTA / CTA SECTION */
.home-cta,.cta-section { min-height:60vh;display:flex;justify-content:center;align-items:center;text-align:center;position:relative;overflow:hidden;padding:120px 52px; }
.hcta-inner,.cta-inner { position:relative;z-index:1;max-width:680px;display:flex;flex-direction:column;align-items:center; }

/* FOOTER */
footer { padding:28px 52px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--bg2); }
footer p { font-family:'Syne Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.1em; }
.footer-links { display:flex;gap:24px; }
.footer-links a { font-family:'Syne Mono',monospace;font-size:11px;color:var(--muted);text-decoration:none;letter-spacing:.1em;transition:color .2s; }
.footer-links a:hover { color:var(--accent); }

/* REVEAL */
.reveal { opacity:0;transform:translateY(36px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1); }
.reveal.vis { opacity:1;transform:translateY(0); }
.d1{transition-delay:.12s} .d2{transition-delay:.24s}

/* RESPONSIVE */
@media (max-width:900px) {
  nav { padding:20px 24px; }
  nav.scrolled { padding:14px 24px; }
  .nav-links { display:none;position:fixed;inset:0;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:32px;font-size:14px; }
  .nav-links.open { display:flex; }
  .nav-burger { display:flex; }
  #home { padding:0 24px 64px; }
  .hero-bottom { flex-direction:column;align-items:flex-start; }
  .home-about { grid-template-columns:1fr;padding:80px 24px; }
  .ha-left { padding-right:0; }
  .cs-grid { grid-template-columns:1fr; }
  .cs-left { position:relative;height:auto;padding:80px 24px 48px; }
  .cs-right { padding:48px 24px 80px; }
  .stats-strip { grid-template-columns:1fr; }
  .stat-cell { border-right:none;border-bottom:1px solid var(--border); }
  .blog-row { grid-template-columns:1fr; }
  .port-grid { grid-template-columns:1fr; }
  .page-hero { padding:0 24px 64px; }
  .pdf-banner { flex-direction:column;gap:28px;padding:40px 24px;text-align:center; }
  .single-post { padding:120px 24px 80px; }
  footer { flex-direction:column;gap:12px;text-align:center;padding:24px; }
  .socials { flex-wrap:wrap; }
}
