/* ============================================================
   ENZO DOVIZIO — "DEV" THEME (toned-down nerd)
   Scope: body.nerd (homepage). Terminal hero + subtle dev accents,
   readable sans body. Layers over style.css.
   ============================================================ */

body.nerd {
    --bg: #0a0e15;
    --bg-2: #0c1220;
    --panel: #101827;
    --panel-2: #142031;
    --line: #1e2a3b;
    --line-2: #29394f;
    --ink: #cdd8e6;
    --ink-dim: #8496ad;
    --ink-faint: #5a6b83;
    --green: #35d98a;
    --green-bright: #62edaa;
    --cyan: #4dd4e8;
    --mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-primary);
    /* Inter */
}

/* soft grid ambience (no scanline) */
body.nerd::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(53, 217, 138, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(53, 217, 138, .035) 1px, transparent 1px);
    background-size: 52px 52px;
    -webkit-mask-image: radial-gradient(circle at 50% 22%, #000, transparent 80%);
    mask-image: radial-gradient(circle at 50% 22%, #000, transparent 80%);
}
body.nerd .container { position: relative; z-index: 1; }

body.nerd ::selection { background: rgba(53, 217, 138, .28); color: #fff; }
body.nerd::-webkit-scrollbar { width: 11px; }
body.nerd::-webkit-scrollbar-track { background: var(--bg); }
body.nerd::-webkit-scrollbar-thumb { background: #1e3a2c; border-radius: 20px; border: 3px solid var(--bg); }
body.nerd::-webkit-scrollbar-thumb:hover { background: #2a5540; }

/* ---------- NAV ---------- */
body.nerd .navbar {
    background: rgba(10, 14, 21, .82);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--line);
    box-shadow: none;
}
body.nerd .navbar.scrolled { border-bottom-color: var(--line-2); }
body.nerd .navbar .logo-img { background: #fdfdfd; padding: 6px 9px; border-radius: 8px; }
body.nerd .nav-link { color: var(--ink-dim); font-weight: 500; }
body.nerd .nav-link:hover { color: #fff; }
body.nerd .nav-link::after { background: var(--green); height: 2px; }
body.nerd .btn-primary-nav {
    background: rgba(53, 217, 138, .12);
    color: var(--green-bright);
    border: 1px solid var(--green);
    border-radius: 8px;
    font-weight: 600;
}
body.nerd .btn-primary-nav:hover { background: rgba(53, 217, 138, .2); box-shadow: 0 0 22px -8px var(--green); transform: translateY(-2px); }
body.nerd .mobile-menu-toggle span { background: var(--green); }

/* ---------- HERO / TERMINAL (kept, the signature dev touch) ---------- */
body.nerd .hero {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 110px;
    padding-bottom: 60px;
    background:
        radial-gradient(1000px 520px at 72% -5%, #0d1c19 0%, transparent 62%),
        var(--bg);
}

/* two-column hero: clear message left, small terminal right */
body.nerd .hero-content {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: var(--spacing-xl);
    align-items: center;
}
body.nerd .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem 1rem;
    margin-bottom: 1.4rem;
    font-family: var(--mono);
    font-size: .78rem;
    font-weight: 600;
    color: #b9e9d2;
    background: rgba(53, 217, 138, .07);
    border: 1px solid rgba(53, 217, 138, .3);
    border-radius: 50px;
}
body.nerd .hero-badge i { font-size: .45rem; color: var(--green); animation: blink 1.8s steps(1) infinite; }
body.nerd .hero-greeting {
    display: block;
    font-family: var(--mono);
    font-size: 1.05rem;
    color: var(--green);
    margin-bottom: .6rem;
}
body.nerd .hero-main {
    display: block;
    font-family: var(--font-heading);
    font-size: 3.05rem;
    font-weight: 800;
    line-height: 1.15;
    color: #f0f5fa;
    letter-spacing: -1px;
    margin-bottom: var(--spacing-md);
}
body.nerd .hero-main .accent { color: var(--green); }
body.nerd .hero-description {
    font-size: 1.18rem;
    color: var(--ink-dim);
    line-height: 1.75;
    margin-bottom: var(--spacing-lg);
}
body.nerd .hero-description strong { color: var(--ink); }
body.nerd .hero-cta { display: flex; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); flex-wrap: wrap; }
body.nerd .hero-stats {
    display: flex;
    gap: .9rem;
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--line);
    flex-wrap: wrap;
}
body.nerd .hero-stats .stat {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--ink-dim);
    font-size: .92rem;
    font-weight: 500;
    background: var(--panel);
    border: 1px solid var(--line);
    padding: .55rem .9rem;
    border-radius: 10px;
}
body.nerd .hero-stats .stat i { color: var(--green); }

body.nerd .hero-side { display: flex; justify-content: center; }
body.nerd .terminal.mini { width: 100%; max-width: 420px; }
body.nerd .terminal.mini .terminal-body { padding: 22px 22px 24px; font-size: .95rem; line-height: 2.1; }
body.nerd .tok { color: var(--green); font-weight: 700; }

body.nerd .terminal {
    border: 1px solid var(--line-2);
    border-radius: 14px;
    background: linear-gradient(180deg, #0d1420, #0a0f19);
    box-shadow: 0 44px 100px -44px rgba(0, 0, 0, .9), 0 0 60px -34px rgba(53, 217, 138, .45);
    overflow: hidden;
    font-family: var(--mono);
}
body.nerd .terminal-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #0b1017;
    border-bottom: 1px solid var(--line);
}
body.nerd .tdot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
body.nerd .tdot.r { background: #ff5f57; }
body.nerd .tdot.y { background: #febc2e; }
body.nerd .tdot.g { background: #28c840; }
body.nerd .terminal-title { margin-left: 10px; font-size: .82rem; color: var(--ink-faint); }
body.nerd .terminal-body { padding: 28px 28px 32px; font-size: 1.02rem; line-height: 2; }
body.nerd .tline { white-space: pre-wrap; word-break: break-word; }
body.nerd .tp { color: var(--green); font-weight: 600; }
body.nerd .tcmd { color: var(--ink); }
body.nerd .tout { color: var(--ink-dim); margin: 2px 0 16px; font-size: .96rem; }
body.nerd .tout .hl { color: var(--green-bright); font-weight: 600; }
body.nerd .tout .tag {
    display: inline-block;
    color: var(--cyan);
    border: 1px solid rgba(77, 212, 232, .35);
    border-radius: 6px;
    padding: 1px 9px;
    margin-right: 5px;
    font-size: .82rem;
}
body.nerd .cursor {
    display: inline-block;
    width: 9px; height: 1.1em;
    background: var(--green);
    vertical-align: -2px; margin-left: 3px;
    animation: blink 1.05s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

body.nerd .terminal-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 24px; }
body.nerd .btn-term {
    font-family: var(--mono);
    font-size: .92rem;
    font-weight: 600;
    padding: 12px 20px;
    border-radius: 9px;
    border: 1px solid var(--line-2);
    color: var(--ink);
    background: rgba(255, 255, 255, .02);
    transition: all .2s ease;
}
body.nerd .btn-term:hover { border-color: var(--green); color: var(--green-bright); transform: translateY(-2px); }
body.nerd .btn-term.primary { background: rgba(53, 217, 138, .13); border-color: var(--green); color: var(--green-bright); }
body.nerd .btn-term.primary:hover { background: rgba(53, 217, 138, .2); box-shadow: 0 0 26px -8px var(--green); }

body.nerd .hero-scroll { display: flex; flex-direction: column; align-items: center; gap: 4px; }
body.nerd .hero-scroll span { font-family: var(--mono); font-size: .72rem; color: var(--ink-faint); letter-spacing: 2px; }
body.nerd .hero-scroll i { color: var(--green); }

/* ---------- SECTION HEADERS (clean, sans) ---------- */
body.nerd section { padding: 5.5rem 0; }
body.nerd .section-label {
    font-family: var(--mono);
    color: var(--green);
    text-transform: none;
    letter-spacing: 0;
    font-size: .82rem;
}
body.nerd .section-label::before { content: '// '; color: var(--ink-faint); }
body.nerd .section-title { font-family: var(--font-heading); color: #eef3f8; }
body.nerd .section-description { color: var(--ink-dim); }

/* ---------- SERVICES ---------- */
body.nerd .services-overview { background: var(--bg); }
body.nerd .service-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    position: relative;
    --mx: 50%; --my: 0%;
}
body.nerd .service-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 14px;
    background: radial-gradient(320px circle at var(--mx) var(--my), rgba(53, 217, 138, .09), transparent 60%);
    opacity: 0;
    transition: opacity .3s;
    pointer-events: none;
}
body.nerd .service-card:hover { border-color: var(--green); transform: translateY(-6px); box-shadow: 0 26px 55px -32px #000, 0 0 44px -24px var(--green); }
body.nerd .service-card:hover::before { opacity: 1; }
body.nerd .service-card.featured { border-color: rgba(53, 217, 138, .45); background: linear-gradient(180deg, rgba(53, 217, 138, .06), var(--panel)); }
body.nerd .service-card.featured::after {
    content: 'più richiesto';
    position: absolute;
    top: 15px; right: 16px;
    font-family: var(--mono);
    font-size: .7rem;
    color: var(--green);
    border: 1px solid rgba(53, 217, 138, .35);
    border-radius: 20px;
    padding: 2px 9px;
}
body.nerd .service-icon {
    width: 58px; height: 58px;
    background: rgba(53, 217, 138, .09);
    border: 1px solid rgba(53, 217, 138, .28);
    border-radius: 12px;
    box-shadow: none;
}
body.nerd .service-icon i { color: var(--green); font-size: 1.6rem; }
body.nerd .service-title { font-family: var(--font-heading); color: #eef3f8; }
body.nerd .service-description { color: var(--ink-dim); }
body.nerd .service-features li { color: var(--ink); }
body.nerd .service-features i { color: var(--green); }
body.nerd .service-link { color: var(--green); font-weight: 600; }
body.nerd .service-link:hover { color: var(--green-bright); }

/* ---------- STATS (mono numbers, no stray prompt) ---------- */
body.nerd .stats-band { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.nerd .stat-figure {
    font-family: var(--mono);
    color: var(--green);
    -webkit-text-fill-color: initial;
    background: none;
    font-size: 3rem;
}
body.nerd .stat-figure .suffix { color: var(--cyan); -webkit-text-fill-color: initial; }
body.nerd .stat-label { color: var(--ink-dim); }

/* ---------- WHY CHOOSE ---------- */
body.nerd .why-choose { background: linear-gradient(180deg, var(--bg-2), var(--bg)); }
body.nerd .why-choose .section-title { color: #eef3f8; }
body.nerd .why-item { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; text-align: left; }
body.nerd .why-item:hover { border-color: var(--green); background: var(--panel-2); box-shadow: 0 0 44px -26px var(--green); }
body.nerd .why-icon {
    width: 56px; height: 56px;
    margin: 0 0 1.1rem;
    background: rgba(53, 217, 138, .09);
    border: 1px solid rgba(53, 217, 138, .28);
    border-radius: 12px;
}
body.nerd .why-icon i { color: var(--green); font-size: 1.7rem; }
body.nerd .why-item h3 { font-family: var(--font-heading); color: #eef3f8; }
body.nerd .why-item p { color: var(--ink-dim); }

/* collab */
body.nerd .collab { background: var(--bg); }
body.nerd .collab img { border: 1px solid var(--line); border-radius: 14px; }

/* ---------- CTA ---------- */
body.nerd .cta-section {
    background: var(--panel);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--ink);
}
body.nerd .cta-title { font-family: var(--font-heading); color: #eef3f8; }
body.nerd .cta-description { color: var(--ink-dim); }
body.nerd .cta-section .btn-white {
    background: rgba(53, 217, 138, .13);
    color: var(--green-bright);
    border: 1px solid var(--green);
}
body.nerd .cta-section .btn-white:hover { background: rgba(53, 217, 138, .2); box-shadow: 0 0 26px -8px var(--green); transform: translateY(-2px); }

/* ---------- FOOTER ---------- */
body.nerd .footer { background: #070b12; border-top: 1px solid var(--line); }
body.nerd .footer-title { color: #eef3f8; }
body.nerd .footer-links a, body.nerd .footer-contact li, body.nerd .footer-description { color: var(--ink-dim); }
body.nerd .footer-links a:hover, body.nerd .footer-contact a:hover { color: var(--green); }
body.nerd .footer-contact i { color: var(--green); }
body.nerd .social-link:hover { background: var(--green); color: #05140d; }
body.nerd .footer-legal a:hover { color: var(--green); }

/* ---------- generic buttons ---------- */
body.nerd .btn-primary {
    background: rgba(53, 217, 138, .14);
    color: var(--green-bright);
    border: 1px solid var(--green);
    box-shadow: none;
}
body.nerd .btn-primary:hover { background: rgba(53, 217, 138, .22); box-shadow: 0 0 26px -8px var(--green); transform: translateY(-2px); }
body.nerd .btn-secondary { background: transparent; color: var(--ink); border: 1px solid var(--line-2); }
body.nerd .btn-secondary:hover { border-color: var(--green); color: var(--green-bright); }

body.nerd .back-to-top { background: var(--panel); color: var(--green); border: 1px solid var(--green); border-radius: 10px; }
body.nerd .back-to-top:hover { background: rgba(53, 217, 138, .15); }

body.nerd [data-aos] { transition: opacity .7s ease, transform .7s ease; }

@media (max-width: 992px) {
    body.nerd .hero-content { grid-template-columns: 1fr; }
    body.nerd .hero-main { font-size: 2.5rem; }
    body.nerd .hero-side { order: 2; }
}
@media (max-width: 768px) {
    body.nerd .hero-main { font-size: 2.1rem; }
    body.nerd .terminal-body { padding: 20px 16px 24px; font-size: .92rem; line-height: 1.9; }
    body.nerd .stat-figure { font-size: 2.4rem; }
}
@media (prefers-reduced-motion: reduce) {
    body.nerd .cursor { animation: none; }
}
