/*! © 2026 Marco Lorica · tutti i diritti riservati */.ab-hero,.ab-page{--ab-ink:#0d1d13;--ab-ink-2:#12261a;--ab-glow:#9fe0a0;--ab-mint:#c9f2c9;--ab-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}.ab-hero{background:var(--ml-secondary-color);z-index:0;cursor:crosshair;justify-content:center;align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.ab-hero:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60% 26% at 50% 48%,#162d1ecc,#0000 72%);position:absolute;inset:0}.ab-hero-canvas{width:100%;height:100%;position:absolute;inset:0}.ab-hero-text{z-index:1;text-align:center;pointer-events:none;padding-top:110px;padding-bottom:90px;position:relative}.ab-eyebrow{font-family:var(--ab-mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);color:var(--ab-glow,#9fe0a0);background:#0d1d138c;border:1px solid #9fe0a040;border-radius:999px;align-items:center;gap:10px;padding:6px 14px;font-size:14px;display:inline-flex}.ab-dot{background:#4ade80;border-radius:50%;width:8px;height:8px;animation:2s infinite ab-ping;box-shadow:0 0 #4ade8099}@keyframes ab-ping{70%{box-shadow:0 0 0 10px #4ade8000}to{box-shadow:0 0 #4ade8000}}.ab-hero-spacer{height:clamp(170px,30vw,330px)}.ab-hero--short{min-height:74svh}@media (width<=819px){.ab-hero-spacer{height:clamp(220px,64vw,420px);margin:18px 0}}.ab-typed{font-family:var(--ab-mono);color:#ffffffc7;min-height:2em;font-size:clamp(15px,1.9vw,21px);line-height:1.6}.ab-typed-word{color:#fff;font-weight:600}.ab-caret{vertical-align:-.18em;background:var(--ab-glow);width:.55em;height:1.1em;margin-left:3px;animation:1s step-end infinite ab-blink;display:inline-block}@keyframes ab-blink{50%{opacity:0}}.ab-scroll{z-index:1;font-family:var(--ab-mono);letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c;flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.ab-scroll:hover{color:#fff}.ab-scroll i{font-size:20px;animation:1.6s ease-in-out infinite ab-bob}@keyframes ab-bob{50%{transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.ab-dot,.ab-caret,.ab-scroll i{animation:none}}