/* Sistema tipografico del sito: un carattere principale, un solo accento tecnico. */
:root {
  --black: #070707;
  --paper: #f5f2ea;
  --gold: #f5c400;
  --line: rgba(245, 242, 234, .2);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--black); scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }
body { overflow-x: hidden; color: var(--paper); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.minimal-nav { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; justify-content: space-between; padding: 22px clamp(22px, 4vw, 60px); mix-blend-mode: screen; }
.minimal-nav { transition: transform .72s cubic-bezier(.22,1,.36,1), opacity .5s ease; will-change: transform; }
.minimal-nav.nav-hidden { transform: translateY(-115%); opacity: .05; pointer-events: none; }
.brand-mark img { width: clamp(104px, 10vw, 160px); height: auto; }
.nav-links { display: flex; gap: clamp(18px, 2.5vw, 42px); margin-left: auto; margin-right: 38px; }
.nav-links a { color: rgba(245,242,234,.72); font: 500 10px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; transition: color .25s ease; }
.nav-links a:hover, .nav-links a:focus-visible { color: var(--gold); }
.menu-toggle { display: none; position: relative; width: 40px; height: 32px; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { position: absolute; left: 8px; width: 24px; height: 1px; background: var(--paper); transition: transform .35s ease, top .35s ease; }
.menu-toggle span:first-child { top: 12px; }
.menu-toggle span:last-child { top: 20px; }
.menu-toggle[aria-expanded="true"] span:first-child { top: 16px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { top: 16px; transform: rotate(-45deg); }
.mobile-menu { display: none; }
.menu-open { overflow: hidden; }
.page-transition { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; overflow: hidden; pointer-events: none; opacity: 0; background: #050505; transition: opacity .28s ease; }
.page-transition::before { content:""; position:absolute; width:42vw; height:42vw; min-width:280px; min-height:280px; border:1px solid rgba(245,196,0,.55); border-radius:50%; box-shadow:0 0 0 1px rgba(245,242,234,.08), 0 0 80px rgba(245,196,0,.14), inset 0 0 70px rgba(245,196,0,.04); transform:scale(.25); opacity:0; }
.page-transition::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,rgba(245,196,0,.06),transparent 38%),linear-gradient(115deg,rgba(5,5,5,.99),rgba(10,10,10,.98)); opacity:0; }
.page-transition__orb { position:absolute; width:13px; height:13px; border-radius:50%; background:var(--gold); box-shadow:0 0 28px 8px rgba(245,196,0,.5); transform:scale(0); }
.page-transition__word { position:relative; z-index:1; color:var(--paper); font:500 10px/1 'JetBrains Mono',monospace; letter-spacing:.34em; opacity:0; transform:translateY(14px); }
.page-transition.is-leaving { opacity:1; }
.page-transition.is-leaving::before { animation:rc-transition-ring .7s cubic-bezier(.22,1,.36,1) forwards; }
.page-transition.is-leaving::after { animation:rc-transition-wash .52s ease forwards; }
.page-transition.is-leaving .page-transition__orb { animation:rc-transition-orb .62s cubic-bezier(.22,1,.36,1) forwards; }
.page-transition.is-leaving .page-transition__word { animation:rc-transition-word .42s .16s ease forwards; }
@keyframes rc-transition-ring { 0%{opacity:0;transform:scale(.25)} 25%{opacity:1} 100%{opacity:.9;transform:scale(2.8)} }
@keyframes rc-transition-wash { 0%{opacity:0} 35%{opacity:1} 100%{opacity:1} }
@keyframes rc-transition-orb { 0%{transform:scale(0)} 38%{transform:scale(1)} 100%{transform:scale(20)} }
@keyframes rc-transition-word { to{opacity:1;transform:translateY(0)} }
.scroll-hero { position: relative; height: 380vh; }
.hero { position: sticky; top: 0; width: 100vw; height: 100svh; min-height: 560px; isolation: isolate; overflow: hidden; background: var(--black); }
.hero-backgrounds { position: absolute; z-index: -4; inset: -2%; overflow: hidden; background: var(--black); transform: perspective(1400px) rotateX(calc(var(--mouse-y, 0) * -2deg)) rotateY(calc(var(--mouse-x, 0) * 2.6deg)) scale(1.035); transform-origin: center; transition: transform .35s cubic-bezier(.22,1,.36,1); }
.hero-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; object-position: center; filter: saturate(.55) contrast(1.14) brightness(.58); opacity: 0; transform: scale(1.08); transition: opacity 1.15s cubic-bezier(.22,1,.36,1), transform 1.8s cubic-bezier(.22,1,.36,1); pointer-events: none; }
.hero-image.is-active { z-index: 1; opacity: 1; transform: scale(1); }
.hero-vignette { position: absolute; inset: 0; z-index: -3; background: radial-gradient(ellipse at 50% 46%, rgba(7,7,7,.42) 0%, rgba(7,7,7,.28) 30%, rgba(7,7,7,.72) 100%), linear-gradient(90deg, rgba(7,7,7,.62), rgba(7,7,7,.2) 48%, rgba(7,7,7,.5)); pointer-events: none; }
.hero-vignette::after { content: ""; position: absolute; inset: auto 0 0; height: 150px; background: linear-gradient(0deg, rgba(7,7,7,.99), rgba(7,7,7,.92) 48%, transparent); }
.webgl-layer { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; opacity: .92; pointer-events: none; }
.hero-grid { position: absolute; inset: 0; z-index: 1; opacity: .13; pointer-events: none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 9vw 9vw; mask-image: radial-gradient(circle at center, black, transparent 70%); transform: translate3d(calc(var(--mouse-x, 0) * -12px), calc(var(--mouse-y, 0) * -8px), 0); transition: transform .45s cubic-bezier(.22,1,.36,1); }
.scroll-indicator { position: fixed; z-index: 5; top: 50%; right: clamp(18px, 3vw, 46px); display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(245,242,234,.72); transform: translateY(-50%); pointer-events: none; }
.scroll-indicator > span { font: 500 9px/1 'JetBrains Mono', monospace; letter-spacing: .12em; }
.scroll-indicator > span:first-child { color: var(--gold); }
.scroll-indicator i { position: relative; display: block; width: 3px; height: 150px; overflow: hidden; background: rgba(245,242,234,.34); box-shadow: 0 0 0 1px rgba(7,7,7,.24); }
.scroll-indicator i b { position: absolute; top: 0; left: 0; display: block; width: 100%; height: calc(var(--scroll-progress, 0) * 100%); background: var(--gold); box-shadow: 0 0 12px rgba(245,196,0,.65); transform-origin: top; transition: height .25s ease-out; }
.scroll-indicator small { margin-top: 5px; color: rgba(245,242,234,.46); writing-mode: vertical-rl; font: 500 8px/1 'JetBrains Mono', monospace; letter-spacing: .2em; }
.hero-copy { position: absolute; z-index: 4; left: 50%; top: 50%; width: min(90vw, 820px); height: 410px; transform: translate3d(calc(-50% + var(--mouse-x, 0) * 8px), calc(-50% + var(--mouse-y, 0) * 6px), 0); transition: transform .5s cubic-bezier(.22,1,.36,1); text-align: center; pointer-events: none; text-shadow: 0 10px 40px rgba(0,0,0,.55); }
.hero-copy-step { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transform: translateY(28px); filter: blur(8px); will-change: opacity, transform, filter; }
.hero-copy-step:first-child { opacity: 1; transform: translateY(0); filter: blur(0); }
.hero-copy p { margin: 0 0 18px; color: var(--gold); font: 500 10px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; }
.hero-copy h1 { margin: 0; color: var(--paper); font-size: clamp(2.8rem, 5.2vw, 5.6rem); font-weight: 500; letter-spacing: -.085em; line-height: .86; }
.hero-copy h1 em { color: var(--gold); font-style: normal; }
.hero-copy span { display: block; margin-top: 26px; color: rgba(245,242,234,.72); font: 500 10px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; }
.hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; width: min(100%, 680px); margin: 34px auto 0; opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity .55s ease, transform .7s cubic-bezier(.22,1,.36,1); text-shadow: none; }
.hero-action { display: inline-flex; align-items: center; justify-content: center; min-height: 72px; padding: 0 28px; border: 1px solid rgba(245,242,234,.5); text-align: center; font: 500 10px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; transition: background .35s ease, color .35s ease, border-color .35s ease, transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease; }
.hero-action strong { color: inherit; font: 600 11px/1.3 var(--sans); letter-spacing: .06em; }

/* Tipografia unica del nuovo sistema RC: Manrope + JetBrains Mono. */
:root {
  --sans: 'Manrope', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --font-display: 'Manrope', sans-serif;
  --font-serif: 'Manrope', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}
body, body * { font-family:'Manrope',sans-serif !important; }
.minimal-nav .nav-links a,
.hero-copy p, .hero-copy span, .hero-action,
.contact-kicker, .contact-panel-heading span,
.stories-heading p, .stories-heading span, .story-feature-copy small,
.story-feature-copy a, .section-label, .about-kicker, .about-scroll,
.about-gallery-status, .about-contact-label, .about-staff-kicker,
.about-timeline-point strong { font-family:'JetBrains Mono',monospace !important; }
.hero-action--quiet { color: var(--paper); background: rgba(7,7,7,.28); }
.hero-action--gold { color: var(--black); background: var(--gold); border-color: var(--gold); }
.hero-action:hover, .hero-action:focus-visible { color: var(--black); background: var(--paper); border-color: var(--paper); transform: translateY(-5px); box-shadow: 0 16px 30px rgba(0,0,0,.28); }
.hero-corner { display: none; }
@media (max-width: 760px) {
  .minimal-nav { padding: 18px 20px; mix-blend-mode: normal; }
  .minimal-nav.nav-hidden { transform: none; opacity: 1; pointer-events: auto; }
  .nav-links { display: none; }
  .menu-toggle { display: block; }
  .mobile-menu { position: fixed; z-index: 10; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; width: 100vw; height: 100dvh; min-height: 100svh; padding: 100px 28px 80px; background: #050505; mix-blend-mode: normal; isolation: isolate; opacity: 0; pointer-events: none; transform: translateY(-18px); transition: opacity .42s ease, transform .6s cubic-bezier(.22,1,.36,1); }
  .mobile-menu::before { content: "RC VOCE PRODUZIONE"; position: absolute; top: 30px; left: 50%; color: rgba(245,196,0,.72); font: 500 9px/1 'JetBrains Mono',monospace; letter-spacing: .26em; transform: translateX(-50%); }
  .mobile-menu a { width: min(460px, 100%); padding: 16px 0; color: var(--paper); font-size: clamp(2.5rem, 12vw, 5rem); font-weight: 500; letter-spacing: -.08em; line-height: .9; text-align: center; border-bottom: 1px solid rgba(245,242,234,.16); }
  .mobile-menu a:last-child { border-bottom: 0; }
  .mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .minimal-nav:has(.mobile-menu.is-open) .brand-mark, .minimal-nav:has(.mobile-menu.is-open) .nav-links, .minimal-nav:has(~ .mobile-menu.is-open) .brand-mark, .minimal-nav:has(~ .mobile-menu.is-open) .nav-links { opacity: 0; pointer-events: none; }
  .minimal-nav:has(.mobile-menu.is-open) .menu-toggle, .minimal-nav:has(~ .mobile-menu.is-open) .menu-toggle { position: relative; z-index: 60; }
  .scroll-hero { height: 460vh; }
  .hero-copy { width: calc(100% - 40px); height: 450px; }
  .hero-copy h1 { font-size: clamp(2.8rem, 12vw, 4.8rem); }
  .hero-copy span { margin-top: 20px; letter-spacing: .18em; }
  .hero-actions { grid-template-columns: 1fr; width: min(100%, 310px); margin-top: 28px; }
  .hero-image { object-position: 58% center; }
  .scroll-indicator { right: 14px; }
  .scroll-indicator i { height: 120px; }
  .hero-grid { background-size: 18vw 18vw; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .page-transition { display:none; }
}
