/* Manifesti HIROS: pagine editoriali sopra base.css (nav, footer, reveal .rv), animate e stampabili. */
.mf { --mf-night: #000; --mf-chalk: #f5f5f7; --mf-quiet: #a1a1a6; --mf-dim: #86868b; --mf-line: #2c2c2e; --mf-paper: #fbfbfd; --mf-ink: #1d1d1f; --mf-muted: #6e6e73;
  --mf-grad: linear-gradient(100deg, #2997ff 5%, #a35cff 40%, #ff5f8f 70%, #ff9f0a 95%);
  background: var(--mf-night); color: var(--mf-chalk); }
.mf main { overflow-x: clip; }
.mf .eyebrow { margin: 0 0 22px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--mf-quiet); }
.mf .grad { background: var(--mf-grad); background-size: 200% 100%; color: transparent; -webkit-background-clip: text; background-clip: text; animation: mf-flow 9s ease-in-out infinite alternate; }
.mf h1, .mf h2, .mf h3 { text-wrap: balance; overflow-wrap: anywhere; min-width: 0; }

/* Nav sempre scura su pagine scure */
.mf .lnav { --nav: rgba(0, 0, 0, .72); --nav-line: rgba(255, 255, 255, .12); --nav-fg: #f5f5f7; --menu-bg: #000; --menu-line: #2c2c2e; color: var(--nav-fg); }

/* Progress */
.mf-progress { position: fixed; top: calc(52px + env(safe-area-inset-top, 0px)); left: 0; right: 0; z-index: 99; height: 2px; background: var(--mf-grad); transform: scaleX(var(--p, 0)); transform-origin: 0 50%; pointer-events: none; }

/* Hero */
.mf-hero { position: relative; isolation: isolate; min-height: calc(100svh - 52px); display: grid; place-items: center; padding: 96px 0 120px; text-align: center; }
.mf-aura { position: absolute; inset: -10% -20% 0; z-index: -1; pointer-events: none; filter: blur(70px); opacity: .55; }
.mf-aura i { position: absolute; border-radius: 50%; width: 46vmax; height: 46vmax; }
.mf-aura i:nth-child(1) { left: 8%; top: 18%; background: radial-gradient(circle, #1f6fff 0, transparent 62%); animation: mf-drift 22s ease-in-out infinite alternate; }
.mf-aura i:nth-child(2) { right: 4%; top: 30%; background: radial-gradient(circle, #b44dff 0, transparent 62%); animation: mf-drift 26s ease-in-out -8s infinite alternate-reverse; }
.mf-aura i:nth-child(3) { left: 34%; bottom: -12%; background: radial-gradient(circle, #ff5f6d 0, transparent 60%); opacity: .7; animation: mf-drift 30s ease-in-out -4s infinite alternate; }
.mf-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; z-index: -1; background: linear-gradient(transparent, var(--mf-night)); }
.mf-hero h1 { margin: 0; font-size: clamp(48px, 8.4vw, 116px); line-height: 1.02; letter-spacing: -.052em; font-weight: 700; }
.mf-hero h1 .w { display: inline-block; white-space: pre; }
.mf-hero .lead { max-width: 680px; margin: 34px auto 0; font-size: clamp(19px, 2vw, 25px); line-height: 1.45; letter-spacing: -.016em; color: var(--mf-quiet); }
.mf-cue { position: absolute; left: 50%; bottom: 36px; translate: -50% 0; display: grid; justify-items: center; gap: 12px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--mf-dim); }
.mf-cue::after { content: ""; width: 1px; height: 44px; background: linear-gradient(var(--mf-chalk), transparent); transform-origin: top; animation: mf-cue 2.4s var(--ease) infinite; }
.mf-cue:hover { color: var(--mf-chalk); }
.js .mf-hero h1 .w { opacity: 0; transform: translateY(.42em); filter: blur(10px); animation: mf-rise 1.1s var(--ease) forwards; animation-delay: calc(var(--d) * 70ms + 120ms); }
.js .mf-hero .lead, .js .mf-cue { opacity: 0; animation: mf-fade 1.2s var(--ease) forwards; animation-delay: var(--late, .9s); }
.js .mf-cue { --late: 1.4s; }

/* Righe che si accendono durante lo scroll */
.mf-lines { padding: 140px 0 120px; }
.mf-lines .eyebrow { margin-bottom: 40px; }
.mf-lines p:not(.eyebrow) { margin: 0 0 .5em; max-width: 960px; font-size: clamp(30px, 4.4vw, 60px); line-height: 1.12; letter-spacing: -.04em; font-weight: 650; color: var(--mf-chalk); transition: opacity .7s var(--ease), filter .7s var(--ease); }
.js .mf-lines p:not(.eyebrow) { opacity: .16; filter: blur(1.5px); }
.js .mf-lines p.lit:not(.eyebrow) { opacity: 1; filter: none; }
.mf-lines p:not(.eyebrow):last-child { margin: 0; }
.mf-lines p strong { font-weight: inherit; }

/* Intestazioni di sezione */
.mf-sec { padding: 130px 0; }
.mf-head { max-width: 820px; margin-bottom: 72px; }
.mf-head h2, .mf-light h2 { margin: 0; font-size: clamp(38px, 5.4vw, 72px); line-height: 1.04; letter-spacing: -.048em; font-weight: 700; }
.mf-head p:not(.eyebrow) { margin: 28px 0 0; max-width: 700px; font-size: clamp(19px, 1.9vw, 23px); line-height: 1.5; letter-spacing: -.014em; color: var(--mf-quiet); }
.mf-head .eyebrow.accent { color: #2997ff; }

/* Principi numerati */
.mf-list { list-style: none; margin: 0; padding: 0; counter-reset: mf; }
.mf-list li { counter-increment: mf; display: grid; grid-template-columns: 140px minmax(0, 1fr) minmax(0, 1.3fr); gap: 40px; align-items: baseline; padding: 44px 0; border-top: 1px solid var(--mf-line); }
.mf-list li:last-child { border-bottom: 1px solid var(--mf-line); }
.mf-list li::before { content: counter(mf, decimal-leading-zero); font-size: 15px; font-weight: 600; letter-spacing: .08em; color: var(--mf-dim); font-variant-numeric: tabular-nums; }
.mf-list h3 { margin: 0; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.12; letter-spacing: -.03em; font-weight: 650; }
.mf-list p { margin: 0; font-size: 19px; line-height: 1.55; color: var(--mf-quiet); max-width: 560px; }
.mf-list li:hover::before { color: transparent; background: var(--mf-grad); -webkit-background-clip: text; background-clip: text; }

/* Tre elementi con icone disegnate */
.mf-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.mf-card { position: relative; padding: 40px 34px 38px; border-radius: 28px; background: linear-gradient(180deg, #161618, #0d0d0e); box-shadow: inset 0 0 0 1px #262628; overflow: hidden; transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.mf-card::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: var(--mf-grad); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .6s var(--ease); }
.mf-card:hover { transform: translateY(-4px); }
.mf-card:hover::before { opacity: 1; }
.mf-card svg { width: 44px; height: 44px; margin-bottom: 64px; fill: none; stroke: var(--mf-chalk); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mf-card svg * { stroke-dasharray: 120; stroke-dashoffset: 0; transition: stroke-dashoffset 1.6s var(--ease) .2s; }
.rv.arm .mf-card svg *, .mf-card.rv.arm svg * { stroke-dashoffset: 120; }
.rv.arm.in .mf-card svg *, .mf-card.rv.arm.in svg * { stroke-dashoffset: 0; }
.mf-card h3 { margin: 0 0 12px; font-size: 26px; letter-spacing: -.026em; font-weight: 650; }
.mf-card p { margin: 0; font-size: 17px; line-height: 1.5; color: var(--mf-quiet); }
.mf-trio .mf-card:nth-child(2) { transition-delay: 80ms; }
.mf-trio .mf-card:nth-child(3) { transition-delay: 160ms; }

/* Sezione chiara */
.mf-light { background: var(--mf-paper); color: var(--mf-ink); padding: 150px 0; }
.mf-light .eyebrow { color: var(--mf-muted); }
.mf-light .split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: end; }
.mf-light .body p { margin: 0 0 22px; font-size: clamp(19px, 1.8vw, 22px); line-height: 1.55; letter-spacing: -.012em; color: var(--mf-muted); }
.mf-light .body p:last-child { margin: 0; }
.mf-light .body strong { color: var(--mf-ink); font-weight: 600; }

/* Orizzonte (visione) */
.mf-horizon { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; padding-top: 44px; }
.mf-horizon::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--mf-line); }
.mf-horizon::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--mf-grad); transform-origin: 0 50%; transition: transform 2.2s var(--ease) .2s; }
.mf-horizon.rv.arm::after { transform: scaleX(0); }
.mf-horizon.rv.arm.in::after { transform: scaleX(1); }
.mf-stage { position: relative; min-width: 0; }
.mf-stage::before { content: ""; position: absolute; top: -51px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--mf-night); box-shadow: inset 0 0 0 2px var(--mf-chalk); }
.mf-stage:first-child::before { background: var(--mf-chalk); box-shadow: 0 0 0 6px rgba(41, 151, 255, .25); }
.mf-stage .when { display: inline-block; margin: 0 0 14px; padding: 4px 11px; border-radius: 980px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--mf-chalk); box-shadow: inset 0 0 0 1px #3a3a3c; }
.mf-stage:first-child .when { background: #0b2a4d; box-shadow: none; color: #6cb6ff; }
.mf-stage h3 { margin: 0 0 22px; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.15; letter-spacing: -.028em; font-weight: 650; }
.mf-stage ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.mf-stage li b { display: block; margin-bottom: 4px; font-size: 17px; font-weight: 600; color: var(--mf-chalk); }
.mf-stage li span { display: block; font-size: 16px; line-height: 1.5; color: var(--mf-quiet); }
.mf-horizon .mf-stage:nth-child(2) { transition-delay: 140ms; }
.mf-horizon .mf-stage:nth-child(3) { transition-delay: 280ms; }
.mf-note { margin: 56px 0 0; max-width: 720px; font-size: 14px; line-height: 1.55; color: var(--mf-dim); }

/* Chiusura */
.mf-close { position: relative; isolation: isolate; padding: 170px 0 150px; text-align: center; overflow: hidden; }
.mf-close .mf-aura { inset: 10% -10% -30%; opacity: .35; }
.mf-close h2 { margin: 0 auto; max-width: 1000px; font-size: clamp(38px, 6vw, 84px); line-height: 1.04; letter-spacing: -.05em; font-weight: 700; }
.mf-close .tag { margin: 30px 0 44px; font-size: 14px; letter-spacing: .08em; color: var(--mf-dim); }
.mf-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 30px; }
.mf-actions .btn { min-height: 50px; padding: 14px 28px; }
.mf-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 17px; color: #2997ff; white-space: nowrap; }
.mf-more span { transition: transform .3s var(--ease); }
.mf-more:hover span { transform: translateX(5px); }
.mf-print { margin-top: 56px; border: 0; background: none; padding: 10px; font: inherit; font-size: 13px; color: var(--mf-dim); cursor: pointer; }
.mf-print:hover { color: var(--mf-chalk); }

/* Reveal sfalsati dentro le liste */
.mf-list li.rv:nth-child(2) { transition-delay: 60ms; }
.mf-list li.rv:nth-child(3) { transition-delay: 120ms; }
.mf-list li.rv:nth-child(4) { transition-delay: 180ms; }

@keyframes mf-rise { to { opacity: 1; transform: none; filter: none; } }
@keyframes mf-fade { to { opacity: 1; } }
@keyframes mf-flow { from { background-position: 0 50%; } to { background-position: 100% 50%; } }
@keyframes mf-drift { from { transform: translate3d(-4%, -3%, 0) scale(1); } to { transform: translate3d(6%, 5%, 0) scale(1.15); } }
@keyframes mf-cue { 0% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

@media (max-width: 1068px) {
  .mf-list li { grid-template-columns: 90px minmax(0, 1fr); gap: 14px 28px; }
  .mf-list li p { grid-column: 2; }
  .mf-trio, .mf-horizon { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .mf-horizon { gap: 48px; padding: 0 0 0 36px; }
  .mf-horizon::before, .mf-horizon::after { top: 0; bottom: 0; left: 6px; right: auto; width: 2px; height: auto; }
  .mf-horizon::after { transform-origin: 50% 0; }
  .mf-horizon.rv.arm::after { transform: scaleY(0); }
  .mf-horizon.rv.arm.in::after { transform: scaleY(1); }
  .mf-stage::before { top: 6px; left: -36px; }
  .mf-card svg { margin-bottom: 36px; }
  .mf-light .split { grid-template-columns: minmax(0, 1fr); gap: 36px; }
}
@media (max-width: 734px) {
  .mf-hero { padding: 72px 0 120px; }
  .mf-lines, .mf-sec { padding: 96px 0; }
  .mf-light { padding: 104px 0; }
  .mf-close { padding: 120px 0 104px; }
  .mf-head { margin-bottom: 48px; }
  .mf-list li { grid-template-columns: minmax(0, 1fr); padding: 32px 0; }
  .mf-list li p { grid-column: auto; font-size: 18px; }
  .mf-card { padding: 30px 26px; border-radius: 22px; }
  .mf-actions { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .mf .grad, .mf-aura i, .mf-cue::after { animation: none; }
  .js .mf-hero h1 .w, .js .mf-hero .lead, .js .mf-cue { opacity: 1; transform: none; filter: none; animation: none; }
  .js .mf-lines p:not(.eyebrow) { opacity: 1; filter: none; }
  .mf-progress { display: none; }
}
@media print {
  @page { size: A4; margin: 16mm; }
  .lnav, .mf-progress, .mf-aura, .mf-cue, .mf-actions, .mf-print, .foot2, .skip { display: none !important; }
  .mf, .mf-light { background: #fff !important; color: #000 !important; }
  .mf-hero, .mf-lines, .mf-sec, .mf-light, .mf-close { min-height: 0; padding: 14px 0 !important; text-align: left; }
  .mf .grad { animation: none; color: #000; background: none; }
  .js .mf-hero h1 .w, .js .mf-hero .lead, .js .mf-lines p, .rv.arm { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; }
  .mf-hero h1 { font-size: 34px; } .mf-lines p:not(.eyebrow) { font-size: 18px; } .mf-head h2, .mf-light h2, .mf-close h2 { font-size: 22px; }
  .mf .eyebrow, .mf-list li::before, .mf-list p, .mf-card p, .mf-stage li span, .mf-head p, .mf-hero .lead, .mf-light .body p { color: #333 !important; font-size: 11px; }
  .mf-card { background: none; box-shadow: none; padding: 8px 0; } .mf-card svg { display: none; }
  .mf-list li { padding: 8px 0; border-color: #ccc; } .mf-stage li b, .mf-stage h3, .mf-list h3, .mf-card h3 { color: #000; font-size: 13px; }
}
.mf-sec.tight { padding-top: 0; }
