// app.jsx — Deck orchestrator for "Mediaset Infinity · Building the Next
// European Media Platform" (Brief C · Hybrid Deck handoff). 27 narrative
// slides + 1 appendix. Five slides (14/18/21/24/25) carry the strategic
// weight; three slides (01/26/27) host the dot-cloud morph iframes that are
// the visual signature of this cinematic version.

// 5 numeri canonici — versione corta usata come tatuaggio nelle anchor row
// (cover slide 01 + footer slide 38) e nello strip della LongScroll 37.
const CANONICAL_NUMBERS = [
  { value: '14-15M',  label: 'MAU IT+ES+DE · Scala' },
  { value: '9% → 27%', label: 'AVOD IT vs UK/DE/FR · Window' },
  { value: '$224M',   label: '#1 AVOD IT · Track record' },
  { value: '1.000+',  label: 'PMI AdManager · Esecuzione' },
  { value: '67%',     label: 'Samsung+LG · Control point CTV' },
];

// Versione estesa per la closing slide 40 (5 numeri come hero grid):
// stessi numeri, etichette più lunghe e didascaliche.
const CANONICAL_NUMBERS_LONG = [
  { value: '14-15M',    tag: '#1 · Scala',        label: 'MAU pan-EU · scala continentale già accesa' },
  { value: '9% vs 27%', tag: '#2 · Window',       label: 'AVOD IT vs UK/DE/FR · 18 punti di headroom' },
  { value: '$224M',     tag: '#3 · Track record', label: '#1 AVOD IT · 4× RaiPlay · 8× Netflix Italy ad-tier' },
  { value: '1.000+',    tag: '#4 · Esecuzione',   label: 'PMI attive AdManager · 12-18 mesi avanti su Netflix SMB' },
  { value: '67%',       tag: '#5 · Control point',label: 'Samsung + LG IT · CTV control point via AGCOM SIG' },
];

const SLIDES = [
  // ═════════════════════════════════════════════════════════════════════════
  // 01 · COVER (Mediaset Infinity morph + 4-bucket LongScroll preview)
  // The cover is hybrid: morph iframe + title at top (the brand arrival),
  // then scroll DOWN to reveal the 4 buckets as clickable action cards
  // (v2 pattern). Click any card to jump to its deck slide.
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleDeep', sectionId: 'open',
    shortLabel: '01 · Cover · 4 Buckets',
    panelColor: 'purpleMid',
    iframeSrc: 'mediaset-morph/index.html?embed=1&state=infinity&color=brand',
    iframeWidth: 1200, iframeHeight: 380,
    iframeTop: 130,
    cornerMap: {
      markets: 'IT,ES,DE,AT,CH,PT',
      host: 'IT',
      labels: 'off',
      motion: 'auto',
      top: 70, right: 50, width: 475, height: 400, opacity: 0.9,
    },
    kicker: 'MFE Group · Documento Interno · Maggio 2026',
    title: 'BUILDING\nTHE NEXT EUROPEAN\nMEDIA PLATFORM',
    scrollHint: 'Scorri per i 4 bucket',
    sections: [
      {
        stat: '01', label: 'CONTENT & IP ENGINE', bucketId: 'b1',
        body: 'Produrre storie locali progettate per diventare europee. 4 azioni: European IP Studio, MFE Creator TV, Always-On IP Ecosystems, Vertical First Studio. Clicca su una card per esplorare.',
        thumbs: [
          { actionId: '#01', label: 'European IP Studio',       src: __a('show-drama', 'jpg'),      x: 0.16, y: 0.38, w: 240, h: 300, rotate: -5, slideIdx: 15 },
          { actionId: '#02', label: 'MFE Creator TV',           src: __a('presenter-1', 'jpg'),     x: 0.16, y: 0.62, w: 240, h: 300, rotate: 4,  slideIdx: 16 },
          { actionId: '#03', label: 'Always-On IP Ecosystems',  src: __a('show-young', 'jpg'),      x: 0.84, y: 0.38, w: 240, h: 300, rotate: 5,  slideIdx: 17 },
          { actionId: '#04', label: 'Vertical First Studio',    src: __a('show-male', 'jpg'),       x: 0.84, y: 0.62, w: 240, h: 300, rotate: -4, slideIdx: 18 },
        ],
      },
      {
        stat: '02', label: 'DISCOVERY & EXPERIENCE', bucketId: 'b2',
        body: 'L\'esperienza utente premium come quella social, senza perdere la qualità del premium TV. 4 azioni: Infinity Flow, Device-Native UX, Performance Room, Editorial Promotion.',
        thumbs: [
          { actionId: '#05', label: 'Infinity Flow',         src: __a('presenter-1', 'jpg'),    x: 0.16, y: 0.38, w: 240, h: 300, rotate: 4,  slideIdx: 22 },
          { actionId: '#06', label: 'Device-Native UX',      src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.62, w: 240, h: 300, rotate: -3, slideIdx: 23 },
          { actionId: '#07', label: 'Performance Room',      src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.38, w: 240, h: 300, rotate: -5, slideIdx: 24 },
          { actionId: '#08', label: 'Editorial Promotion',   src: __a('show-dance', 'jpg'),     x: 0.84, y: 0.62, w: 240, h: 300, rotate: 3,  slideIdx: 25 },
        ],
      },
      {
        stat: '03', label: 'DISTRIBUTION & SCALE', bucketId: 'b3',
        body: 'Infinity IT, Infinity ES, Joyn DE al centro. Tutto il resto è amplificatore. 4 azioni: Owned First, YouTube Embassy, CTV Home Screen, European Identity Layer.',
        thumbs: [
          { actionId: '#09', label: 'Owned First, Distributed 2nd', src: __a('show-couple', 'jpg'),     x: 0.16, y: 0.38, w: 240, h: 300, rotate: -4, slideIdx: 29 },
          { actionId: '#10', label: 'YouTube Embassy',              src: __a('show-young', 'jpg'),      x: 0.16, y: 0.62, w: 240, h: 300, rotate: 3,  slideIdx: 30 },
          { actionId: '#11', label: 'CTV Home Screen War',          src: __a('show-tv', 'jpg'),         x: 0.84, y: 0.38, w: 240, h: 300, rotate: 5,  slideIdx: 31 },
          { actionId: '#12', label: 'European Identity Layer',      src: __a('content-collage', 'jpg'), x: 0.84, y: 0.62, w: 240, h: 300, rotate: -3, slideIdx: 32 },
        ],
      },
      {
        stat: '04', label: 'MONETIZATION & DATA', bucketId: 'b4',
        body: 'AdManager live da 18 mesi. La domanda non è "lanciamo" — è "scaliamo". 4 azioni: AdManager Self-Service, Shoppable + Distributed, Audience Intelligence, ADV mandate cross-MFE.',
        thumbs: [
          { actionId: '#13', label: 'AdManager Self-Service',  src: __a('show-female', 'jpg'),     x: 0.16, y: 0.38, w: 240, h: 300, rotate: -5, slideIdx: 37 },
          { actionId: '#14', label: 'Shoppable + FAST EU',     src: __a('show-dance', 'jpg'),      x: 0.16, y: 0.62, w: 240, h: 300, rotate: 4,  slideIdx: 38 },
          { actionId: '#15', label: 'Audience Intelligence',   src: __a('content-collage', 'jpg'), x: 0.84, y: 0.38, w: 240, h: 300, rotate: 5,  slideIdx: 39 },
          { actionId: '#16', label: 'ADV mandate cross-MFE',   src: __a('show-couple', 'jpg'),     x: 0.84, y: 0.62, w: 240, h: 300, rotate: -4, slideIdx: 40 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'Bucket 01 · Content Engine',  thumb: __a('show-drama', 'jpg'),      imagePos: 'center 25%', slideIdx: 14 },
      { shortLabel: 'Bucket 02 · Discovery',        thumb: __a('show-presenters', 'jpg'), imagePos: 'center 25%', slideIdx: 21 },
      { shortLabel: 'Bucket 03 · Distribution',     thumb: __a('show-male', 'jpg'),       imagePos: 'center 25%', slideIdx: 28 },
      { shortLabel: 'Bucket 04 · Monetization',     thumb: __a('show-female', 'jpg'),     imagePos: 'center 30%', slideIdx: 36 },
    ],
    source: 'Mediaset Infinity · Statista GCS · OMDIA · maggio 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 02 · Non siamo più broadcaster italiani · 14-15M MAU
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'nearBlack', sectionId: 'open',
    shortLabel: '02 · Non più broadcaster IT',
    panelColor: 'purpleMid',
    kicker: 'Apertura · Framing storico',
    statement: 'MFE non è più\nun broadcaster italiano.\nÈ un gruppo media europeo.',
    body: 'Europe does not have a platform capable of competing with Netflix, Amazon and YouTube at continental scale because no one has yet had the content and audiences to build it. We have both.\n\nThis is a fundamental change in what MFE is: from a broadcaster that owns digital products, to a European entertainment operating system with proprietary IP, a unified audience graph and a single commercial machine across three markets.',
    numberGrid: [
      { value: 'XX',     tag: 'MFE GROUP · DIGITAL',  label: 'Aggregato digital di gruppo' },
      { value: '14-15M', tag: 'OTT PURI · IT+ES+DE', label: 'Infinity IT + Infinity ES + Joyn DE' },
    ],
    cornerMap: {
      markets: 'IT,ES,DE,AT,CH,PT',
      host: 'IT',
      labels: 'iso',
      motion: 'auto',
      top: 110, right: 60, width: 760, height: 720, opacity: 0.95,
    },
    source: 'Statista GCS 2026 · OMDIA Online Video 2026 · Subs IT da press dei vari operatori',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 03 · Lo spazio si sta chiudendo · 9% vs 27%
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'purpleBlue', sectionId: 'open',
    shortLabel: '03 · La finestra si chiude',
    panelColor: 'indigo',
    kicker: 'Setup · Burning platform',
    statement: 'La finestra per costruire\nla piattaforma europea\nè adesso. Domani sarà tardi.',
    body: 'AVOD Italia 9%, UK/DE/FR 27%. Diciotto punti di headroom strutturale. ITV plc FY2025: payback ITVX 4 anni in anticipo sul business plan — prima evidenza pubblica EU che la reorg streaming-first ripaga in 36 mesi.',
    killerNumber: '9% vs 27%',
    killerLabel: 'AVOD Italia vs UK/DE/FR · la distanza è la nostra opportunità (e il nostro orologio)',
    quote: 'AVOD market shares still marginal, reflecting the strength of national mainstream broadcasters, MFE/Mediaset above all.',
    quoteAuthor: 'Augusto Preta · ITMedia Consulting · ott 2025',
    chartPanel: {
      title: 'AVOD market share per paese',
      max: 30,
      bars: [
        { flag: '🇬🇧', country: 'UK',       value: 24 },
        { flag: '🇩🇪', country: 'Germania', value: 20 },
        { flag: '🇫🇷', country: 'Francia',  value: 17 },
        { flag: '🇪🇸', country: 'Spagna',   value: 9 },
        { flag: '🇮🇹', country: 'Italia',   value: 9, highlight: true },
      ],
      averages: [
        { label: 'Media UK / DE / FR', value: '27%', highlight: true },
        { label: 'Media paesi MFE',    value: '11%', sub: '(IT 9% · ES 9% · DE 14%)' },
      ],
      verticalBars: {
        title: 'Mercato AVOD totale 2025 (stima · € Bn)',
        max: 2.2,
        data: [
          { flag: '🇬🇧', country: 'UK',       value: 2.0, display: '€2,0 Bn' },
          { flag: '🇩🇪', country: 'Germania', value: 1.4, display: '€1,4 Bn' },
          { flag: '🇫🇷', country: 'Francia',  value: 1.1, display: '€1,1 Bn' },
          { flag: '🇪🇸', country: 'Spagna',   value: 0.4, display: '€400M' },
          { flag: '🇮🇹', country: 'Italia',   value: 0.18,display: '€180M', highlight: true },
        ],
      },
      note: 'Nota: share AVOD del mercato pubblicitario digitale nazionale (alto). Mercato totale AVOD per paese 2025 (basso) — Italia €180M, UK ~11× più grande.',
    },
    source: 'ITMedia/Preta · ott 2025 · ITV plc FY2025 RNS · 4 mar 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 04 · 4 EU OTT partnerships in 90 days · consolidation thesis
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Partnerships', scheme: 'purpleDeep', sectionId: 'open',
    shortLabel: '04 · 4 partnership in 90 giorni',
    panelColor: 'purpleMid',
    kicker: 'Apertura · Market consolidation',
    title: 'FOUR MAJOR EU OTT PARTNERSHIPS\nCLOSED IN 90 DAYS · 2025',
    subtitle: 'Netflix × TF1, Disney × ITVX, Amazon × France.tv, Disney × ZDF. The market is consolidating right now — and the broadcasters that move first lock the relationship with their audience.',
    deals: [
      {
        date: 'GIU 2025',
        a: { name: 'Netflix', color: '#E50914' },
        b: { name: 'TF1', color: '#1A1A1A', textColor: '#FFD500' },
        desc: 'Library deal · TF1 mantiene la prima finestra. Modello "owned-first, distributed-smart".',
      },
      {
        date: 'LUG 2025',
        a: { name: 'Disney+', color: '#113CCF' },
        b: { name: 'ITVX', color: '#1B1B1B', textColor: '#FFD700' },
        desc: 'Bundled subscription · acquisizione cross-platform sul mercato UK.',
      },
      {
        date: 'LUG 2025',
        a: { name: 'Prime Video', color: '#00A8E1' },
        b: { name: 'france·tv', color: '#003D8F' },
        desc: 'Catalogue carriage · Amazon distribuisce, France TV resta destination.',
      },
      {
        date: 'AGO 2025',
        a: { name: 'Disney+', color: '#113CCF' },
        b: { name: 'ZDF', color: '#F49A2F', textColor: '#1B1B1B' },
        desc: 'Pan-EU content exchange · Disney espande il footprint editoriale in DACH.',
      },
    ],
    closingLine: 'The market is consolidating right now.',
    source: 'Variety, Reuters, Press releases · giu-ago 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 05 · MFE is already a European media platform · pillar comparison
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Comparison', scheme: 'nearBlack', sectionId: 'open',
    shortLabel: '05 · MFE è già una piattaforma EU',
    panelColor: 'purpleMid',
    kicker: 'Apertura · Asset base · MFE vs EU benchmarks',
    title: 'MFE IS ALREADY\nA EUROPEAN MEDIA PLATFORM.\nIT JUST DOESN\'T LOOK\nLIKE ONE YET.',
    body: 'Infinity IT + Infinity ES + Joyn are not three separate products. They are three pillars of a pan-European asset.\n\nNo other European broadcaster has this combination today: cross-country scale already operational, proprietary IP with active fandoms, commercial infrastructure with direct advertisers and GDPR-compliant first-party data across three markets.',
    table: {
      columns: ['Dimension', 'MFE Today', 'RTL Bedrock', 'TF1+', 'ITVX'],
      highlightCol: 1,
      rows: [
        ['Aggregated MU',         '22-25M',           '45M',                '38M',          '–'],
        ['Active markets',        '3',                '6',                  '1',            '1'],
        ['Digital ADV revenue',   '–',                '–',                  '€198M (18 mo)','–'],
        ['AVOD penetration',      '–',                '–',                  '–',            '27% (UK)'],
        ['Data infrastructure',   'CDP',              'Federated graph',    '–',            '–'],
        ['OEM pre-installation',  '–',                '–',                  '–',            '–'],
      ],
    },
    source: 'MFE Annual Report 2024 · RTL Group 2026 · TF1 FY 2025 · ITV plc FY2025 RNS',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 06 · I 7 Shifts strategici · multi-card
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'D', scheme: 'nearBlack', sectionId: 'open',
    shortLabel: '06 · I 7 Shifts strategici',
    panelColor: 'purpleMid',
    title: 'I 7 SHIFTS\nCHE CI PORTANO LÌ',
    subtitleWide: true,
    subtitle: 'Everything we build connects to one thing: the audience — the one that chooses us every day, on every screen, in every market.\n\nThe platform runs on four engines working simultaneously: Content Engine (proprietary IP, creator partnerships, always-on ecosystems, vertical storytelling) · Discovery & Experience (Infinity Flow, personalised UX, CTV-first, cross-device) · Distribution & Scale (Owned first, YouTube as funnel, FAST channels, European content grid) · Monetisation & Data (Premium Advertisers, Branded Content, Shoppable moments, AdManager).\n\nThree mindset shifts run across all four engines: fandom as growth engine · local stories with global scale · fearless testing culture.\n\nThe platform logic in one sentence: more audience generates more data → more revenues → better IP → more audience. The flywheel compounds.',
    cols: 4,
    cards: [
      { panel: 'purpleMid', image: __a('show-drama', 'jpg'),      imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 01', title: 'One European Identity', note: 'One login · one graph · one cross-country asset', slideIdx: 6 },
      { panel: 'indigo',    image: __a('content-collage', 'jpg'), imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 02', title: 'Local Stories, Global Scale', note: 'IP locale → impatto europeo · AI dubbing -60/-86%', slideIdx: 7 },
      { panel: 'purpleMid', image: __a('show-young', 'jpg'),      imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 03', title: 'Fandom Engine', note: 'Community è growth engine · GF 215K · 7 layer IP', slideIdx: 8 },
      { panel: 'navy',      image: __a('show-tv', 'jpg'),         imagePos: 'center 30%', kicker: 'STRATEGIC SHIFT 04', title: 'CTV Home Screen Strategy', note: 'AGCOM SIG · 67% Samsung+LG · rail home obbligatorio', slideIdx: 9 },
      { panel: 'navy',      image: __a('show-dance', 'jpg'),      imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 05', title: 'Fearless Testing Culture', note: 'Pilot prima, scala dopo · MVP Flow H2 2026 · ATP 2026-28', slideIdx: 11 },
      { panel: 'indigo',    image: __a('show-presenters', 'jpg'), imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 06', title: 'Catalogo → Engagement continuo', note: 'Feed AI · Infinity Flow · Always-On IP', slideIdx: 12 },
      { panel: 'pink',      image: __a('show-female', 'jpg'),     imagePos: 'center 25%', kicker: 'STRATEGIC SHIFT 07', title: 'Inventory → Audience & Commerce', note: 'AdManager pan-MFE · shoppable · ad-tier growth', slideIdx: 13 },
    ],
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 07 · STRATEGIC SHIFT 01 · One European Identity
  // From three audiences/logins/data pools → one user relationship, one
  // recommendation graph, one cross-country advertising asset.
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleDeep', sectionId: 'shifts',
    shortLabel: '07 · Shift 1 · One European Identity',
    panelColor: 'purpleMid',
    kicker: 'STRATEGIC SHIFT 01 · One European Identity',
    title: 'ONE EUROPEAN\nIDENTITY',
    subtitle: 'Today: three audiences, three logins, three data pools. Tomorrow: one user relationship, one recommendation graph, one cross-country advertising asset — portable across IT, ES, DE.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 01',
      titleOverride: 'FROM THREE BRANDS\nTO ONE GRAPH',
      numbers: [
        { value: 'xx',    tag: 'SSO · DAYS',      label: 'European SSO portable IT/ES/DE · time to launch' },
        { value: 'xx',    tag: 'CDP · MONTHS',    label: 'Unified CDP across IT + ES + DE · single data pool' },
        { value: 'xxx',   tag: 'GRAPH · PHASE 1', label: 'Cross-market audience graph · completion timeline' },
        { value: '0',     tag: 'EU PLAYERS',      label: 'European broadcasters that have fully achieved this federation' },
      ],
      senseLine: 'No European player has fully achieved this level of federation yet.',
    },
    sections: [
      {
        stat: '3 / 3 / 3', label: 'TODAY · THE FRAGMENTATION WE INHERITED',
        body: 'Today we have three audiences, three logins, three data pools. For the user we are three different brands. For the advertiser we are three separate conversations. → Per Infinity: the fragmentation is the cost we keep paying to legacy.',
      },
      {
        stat: '1 LOGIN', label: 'ONE EUROPEAN LOGIN · PORTABLE USER RELATIONSHIP',
        body: 'One European login means one relationship with the user, portable across Italy, Spain and Germany. The user moves between countries; the experience moves with them. → Per Infinity: portability becomes a moat against regional-silo competitors.',
      },
      {
        stat: '1 GRAPH', label: 'ONE PROFILE + RECOMMENDATION GRAPH',
        body: 'One profile and recommendation graph means what a user watches in Milan informs what we recommend in Madrid. Discovery compounds across markets, not within them. → Per Infinity: every viewing signal becomes 3× more valuable.',
      },
      {
        stat: '1 ASSET', label: 'ONE IDENTITY GRAPH · CROSS-COUNTRY ADVERTISING ASSET',
        body: 'One identity graph across Europe means our audience becomes a single cross-country advertising asset. Brands buy reach as one unit, not three campaigns stitched together. → Per Infinity: pricing power shifts from share-of-market to cross-market premium.',
      },
      {
        stat: 'PHASE 1', label: 'INFRASTRUCTURE TO BUILD · PHASE 1',
        body: 'European SSO: xx days to launch. Unified CDP across IT + ES + DE: xx months. Cross-market audience graph: Phase 1 completion in xxx. → No European player has fully achieved this level of federation yet.',
      },
    ],
    source: 'MFE Annual Report 2024 · Risposta Mara 18 mag 2026 · RTL Bedrock benchmark · ElevenLabs/Deepdub 2024-2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 08 · STRATEGIC SHIFT 02 · Local Stories, Global Scale
  //   Cornice trasversale: storia locale, impatto globale.
  //   Contenuto: descrizione mappa-poster verbatim + evidenze GIA presenti
  //   nel deck (slide 5 AI dubbing, slide 27 federation, slide 10/14 IP).
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleBlue', sectionId: 'shifts',
    shortLabel: '08 · Shift 2 · Local Stories, Global Scale',
    panelColor: 'indigo',
    kicker: 'STRATEGIC SHIFT 02 · Local Stories, Global Scale',
    title: 'LOCAL STORIES,\nGLOBAL SCALE',
    subtitle: 'RAI with Mare Fuori proved that a deeply local Italian story can become a European hit. Netflix proved the same with Squid Game and Dark. The shift: design every IP with two layers from day one — local soul and European portability.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 02',
      titleOverride: 'DESIGN FOR TRAVEL\nFROM DAY ONE',
      numbers: [
        { value: '-60/-86%',tag: 'AI DUBBING',    label: 'Localisation cost · ElevenLabs/Deepdub 2024-25' },
        { value: 'Mare F.', tag: 'PROOF · IT',    label: 'Italian local IP → European hit · RAI benchmark' },
        { value: 'Squid G.',tag: 'PROOF · GLOBAL',label: 'Local Korean story → global hit · Netflix playbook' },
        { value: 'Day 1',   tag: 'DESIGN',        label: 'Every owned IP greenlit with cross-EU distribution plan' },
      ],
      senseLine: 'Stories designed well enough to travel: local soul + European portability from day one.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · TWO PROOFS',
        heading: 'TWO PROOFS · LOCAL TO EUROPEAN HIT',
        body: 'RAI with Mare Fuori proved that a deeply local Italian story can become a European hit. Netflix with Squid Game, Dark and a long list of titles proved the same playbook at a global scale. → For Infinity: the model is no longer hypothesis — it\'s a documented pattern we can run.',
        sourceMeta: 'Mare Fuori · 2020-2026 · Squid Game · Netflix Newsroom 2021',
      },
      {
        type: 'bullet', num: '02 · THE SHIFT',
        heading: 'DESIGN EVERY IP\nWITH TWO LAYERS',
        body: 'The shift we are making is to design every IP with two layers from day one: local soul and European portability. Stories designed well enough to travel — no re-shoots, no artificial windowing, no licensing patchwork after launch. → For Infinity: time-to-cross-market collapses from quarters to days.',
        sourceMeta: 'Design principle · cross-EU distribution by default',
      },
      {
        type: 'valuechain',
        heading: 'THE IP VALUE CHAIN',
        body: 'Each step is owned or directly orchestrated by MFE. No leg of the chain is outsourced to a competitor platform.',
        steps: [
          'Local production',
          'Infinity first window',
          'Cross-market release',
          'Creator ecosystem extension',
          'FAST channels',
          'International licensing',
        ],
        note: 'The result: every IP captures value at six points, not one.',
      },
      {
        type: 'comparison',
        heading: 'ECONOMICS · BEFORE / AFTER AI LOCALISATION',
        body: 'AI dubbing and AI subtitling collapse the marginal cost of cross-market release. Placeholders below — to be replaced with the final benchmark numbers from the ElevenLabs/Deepdub pilot.',
        table: {
          columns: ['Step', 'Without AI loc.', 'With AI loc.', 'Saving'],
          highlightCol: 2,
          rows: [
            ['Subtitling cost per episode',  '€',     '€',     '%'],
            ['Time to cross-market release', 'weeks', 'weeks', 'weeks'],
            ['Dubbing cost per episode',     '€',     '€',     '%'],
            ['Rights clearance timeline',    'weeks', 'weeks', 'weeks'],
          ],
        },
        note: 'IP cross-market performance, current baseline: to be filled with the latest internal data.',
      },
      {
        type: 'bullet', num: '05 · THE GOAL',
        heading: 'EVERY OWNED IP, GREENLIT\nWITH A CROSS-EU PLAN.',
        body: 'The goal: every owned IP greenlit with a cross-European distribution plan from day one. No more "Italian-only first, maybe Europe later" — every commission is a pan-EU decision. → For Infinity: the catalogue compounds three times faster, at lower marginal cost.',
        sourceMeta: 'Operating principle · Strategic Shift 02',
      },
    ],
    source: 'Statista GCS 2026 · ElevenLabs/Deepdub 2024-2025 · Mare Fuori (RAI 2020-2026) · Squid Game (Netflix 2021) · Risposta Mara 18 mag 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 09 · STRATEGIC SHIFT 03 · Fandom Engine
  //   Cornice trasversale: la community è growth engine, non nicchia.
  //   Contenuto: descrizione mappa-poster verbatim + evidenze GIA presenti
  //   nel deck (slide 06 community 215K, slide 12 always-on, slide 20 prove).
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleDeep', sectionId: 'shifts',
    shortLabel: '09 · Shift 3 · Fandom Engine',
    panelColor: 'purpleMid',
    kicker: 'STRATEGIC SHIFT 03 · Fandom Engine',
    title: 'FANDOM\nENGINE',
    subtitle: 'Active communities, not passive audiences. Hubs, theories, reactions, collectibles, watch parties. Culture, conversations, belonging.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 03',
      numbers: [
        { value: '215K',  tag: 'GF',        label: 'Membri community Grande Fratello su Infinity · prototipo interno' },
        { value: '142M',  tag: 'AMICI',     label: 'Views Q1 2025 · 12M interazioni · IP dinamiche consolidate' },
        { value: '+128%', tag: 'VIOLA',     label: 'Viewing-time on-demand · La Talpa +33% lift Infinity' },
        { value: '7',     tag: 'LAYER IP',  label: 'Clip · backstage · podcast · community · fandom · commerce · social' },
      ],
      senseLine: 'La community è motore di crescita, non nicchia.',
    },
    sections: [
      {
        stat: '215K', label: 'FANDOM IS NOT A NICHE · ACTIVE COMMUNITIES, NOT PASSIVE AUDIENCES',
        body: 'The shift from passive viewer to active fan is the most important behavioural change in media consumption in the last decade. We have been sitting on fandoms we have not fully activated. Grande Fratello and Amici are not just shows — they are communities: 215K active members on the GF Infinity hub, 142M views and 12M interactions on Amici Q1 2025. → For Infinity: the activation gap is bigger than the audience gap.',
      },
      {
        stat: '7', suffix: ' layer',
        label: 'ECOSYSTEM PATTERN · CLIPS · BACKSTAGE · PODCAST · COMMUNITY · COMMERCE',
        body: 'Ogni grande IP sviluppa 7 layer continui di relazione con l\'audience: clips, backstage, podcasts, community, fandom, commerce, social moments. L\'obiettivo non è prolungare il programma, ma mantenere viva la relazione tutto l\'anno. L\'ecosistema è la nuova unità di prodotto. GF prototipo (live 24/7, podcast, backstage, clip, fandom social), Amici dinamiche consolidate.',
      },
      {
        stat: '+128', suffix: '% / +33%',
        label: 'PROVA INTERNA · IL FANDOM AMPLIFICA IL LINEARE',
        body: 'Viola Come il Mare 2: +128% viewing-time on-demand (lineare ~in linea), 12,5M ore on-demand, #1 contenuto on-demand del periodo. La Talpa multimediale: +33% lift Infinity, totale 3,115M = 2,3M C5 + 815K Infinity. Quando l\'IP diventa ecosistema continuo (community + clip + podcast), il lineare cresce — non si cannibalizza.',
      },
      {
        stat: 'MFE', label: 'CONTENITORE DEL FANDOM CROSS-MERCATO',
        body: 'La piattaforma europea aggrega in un\'unica esperienza le community attive di tutti i bucket: feed dedicato per IP, watch parties cross-mercato, layer commerce su fandom. Always-On IP Ecosystems (azione 03), Editorial Promotion (azione 08) e Vertical First Studio (azione 04) sono le 3 azioni che attivano questo shift dentro il prodotto.',
      },
    ],
    source: 'PrimaOnline + Messaggero 2025 (community GF 215K) · ANSA + Sensemakers mag 2024 (Viola) · Affari Italiani nov 2024 (Talpa) · strategic map MFE',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 10 · STRATEGIC SHIFT 04 · CTV Home Screen Strategy
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'navy', sectionId: 'shifts',
    shortLabel: '10 · Shift 4 · CTV Home Screen Strategy',
    panelColor: 'navy',
    kicker: 'STRATEGIC SHIFT 04 · CTV Home Screen Strategy',
    title: 'CTV HOME SCREEN\nSTRATEGY',
    subtitle: 'Control the discovery. The remote control used to be the gatekeeper. Now it is the CTV home screen — and every TV sold without our tile is a customer we structurally lose.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 04',
      titleOverride: 'CONTROL\nTHE DISCOVERY',
      numbers: [
        { value: '51%',   tag: 'TV ON CTV',     label: 'Tempo TV italiano già su connected TV (StackAdapt 2026)' },
        { value: '67%',   tag: 'OEM CONTROL',   label: 'Samsung + LG · famiglie IT (Statista 2025)' },
      ],
      table: {
        title: 'CTV LANDSCAPE IT · WHERE WE STAND',
        columns: ['OEM / Platform', 'Italian household share', 'Infinity pre-installed', 'Strategic priority'],
        highlightCol: 2,
        rows: [
          ['Samsung',                 '%', 'No', '–'],
          ['LG',                      '%', 'No', '–'],
          ['Fire TV (Amazon)',        '%', 'No', '–'],
          ['Titan OS',                '%', 'No', '–'],
          ['Android TV / Google TV',  '%', 'No', '–'],
          ['Apple TV',                '%', 'No', '–'],
        ],
        note: 'Samsung + LG combined = ~67% of Italian smart TV households (Statista 2025). Percentage placeholders — to be filled with the latest internal data.',
      },
      senseLine: 'Every TV sold without our tile is a customer we structurally lose.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · THE NEW GATEKEEPER',
        heading: 'THE NEW GATEKEEPER\nIS THE CTV HOME SCREEN',
        body: 'The remote control used to be the gatekeeper. Now it is the CTV home screen — 51% of Italian TV viewing already happens on connected TV (StackAdapt 2026). The home screen tile is where discovery is won or lost, before any catalogue, before any recommendation. → For Infinity: the war for attention has moved from EPG to OEM tile.',
        sourceMeta: 'StackAdapt + AdvancedTV · 2026',
      },
      {
        type: 'bullet', num: '02 · STRATEGIC EMERGENCY',
        heading: 'INFINITY IS NOT PRE-INSTALLED\nON SAMSUNG TVS IN ITALY.',
        body: 'Samsung and LG account for approximately 67% of Italian TV households. Infinity is not pre-installed on Samsung TVs in Italy today. This is not a product gap — it is a strategic emergency. → For Infinity: closing this gap is more urgent than any new product feature.',
        sourceMeta: 'Statista IT smart TV share · 2025',
      },
      {
        type: 'comparison',
        heading: 'CTV LANDSCAPE IT · WHERE WE STAND',
        body: 'Italian household share by OEM / platform, current Infinity pre-installation status, strategic priority for each.',
        table: {
          columns: ['OEM / Platform', 'Italian household share', 'Infinity pre-installed', 'Strategic priority'],
          highlightCol: 2,
          rows: [
            ['Samsung',                 '%', 'No', '–'],
            ['LG',                      '%', 'No', '–'],
            ['Fire TV (Amazon)',        '%', 'No', '–'],
            ['Titan OS',                '%', 'No', '–'],
            ['Android TV / Google TV',  '%', 'No', '–'],
            ['Apple TV',                '%', 'No', '–'],
          ],
        },
        note: 'Samsung + LG combined = ~67% of Italian smart TV households (Statista 2025). Percentage placeholders — to be filled with the latest internal data.',
      },
    ],
    source: 'StackAdapt + AdvancedTV 2026 · Statista 2025 (Samsung 45% + LG 22%) · AGCOM Delibera 110/25/CONS · TF1 FY 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 11 · AGCOM SIG · Deep-dive placeholder · regulatory angle
  //   Slide dedicata al tema AGCOM, da popolare con contenuto definitivo.
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'navy', sectionId: 'shifts',
    shortLabel: '11 · AGCOM SIG · Deep dive [PLACEHOLDER]',
    panelColor: 'navy',
    // Sub-slide of Shift 04 (CTV Home Screen Strategy). Navigationally
    // accessible via → from Shift 04 stat-explainer, but hidden from the
    // bottom StoryCarousel so it doesn't appear as an 8th shift entry.
    hideFromCarousel: true,
    kicker: 'STRATEGIC SHIFT 04 · Deep dive · AGCOM SIG',
    title: 'AGCOM SIG.\nL\'ARMA REGOLATORIA\nUNICA IN EU.',
    subtitle: '[Placeholder · da popolare] AGCOM Delibera 110/25/CONS ottobre 2025: rail home obbligatorio sulle smart TV vendute in Italia (RAI, MFE, La7, Sky, WBD). Una posizione di accesso che né Netflix né Disney possono replicare.',
    statSlide: {
      kickerOverride: 'I NUMERI · AGCOM SIG',
      titleOverride: 'PROMINENCE\nBY LAW',
      numbers: [
        { value: 'OTT 25', tag: 'AGCOM SIG',    label: 'Delibera 110/25/CONS · rail home obbligatorio IT' },
        { value: '5',      tag: 'SIG ICONS',    label: 'RAI · MFE · La7 · Sky · WBD · prima pagina smart-TV IT' },
        { value: '67%',    tag: 'COVERAGE',     label: 'Famiglie IT raggiunte (Samsung + LG · Statista 2025)' },
        { value: '0',      tag: 'EU COMPET.',   label: 'Netflix · Disney · Apple non possono replicare' },
      ],
      senseLine: 'A regulatory window opening once: the time to convert it into a permanent control point is now.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · PLACEHOLDER',
        heading: 'AGCOM SIG · WHAT IT IS\n[PLACEHOLDER]',
        body: '[Placeholder · da popolare con il deep-dive AGCOM definitivo] Storia della delibera, Tavolo tecnico AGCOM con RTI dentro, 700+ servizi candidati, target ~10 icone audiovisive nazionali online in prima pagina, calendario di enforcement, ruolo MFE.',
        sourceMeta: 'AGCOM Delibera 110/25/CONS · ott 2025',
      },
      {
        type: 'bullet', num: '02 · PLACEHOLDER',
        heading: 'WHY IT MATTERS FOR INFINITY\n[PLACEHOLDER]',
        body: '[Placeholder · da popolare] Posizionamento Infinity nella graduatoria SIG, conseguenze commerciali (auto-promo, inventory), interazione con i deal OEM Samsung/LG, leva negoziale con Big Tech CTV.',
        sourceMeta: 'Da definire',
      },
      {
        type: 'bullet', num: '03 · PLACEHOLDER',
        heading: 'EU CONTEXT · ASYMMETRY VS UK / DMA\n[PLACEHOLDER]',
        body: '[Placeholder · da popolare] Ofcom 9-tile UK (consultazione, codice atteso fine 2026), lettera DMA 24 mar 2026 ACT/EBU/egta/AER per includere OS smart-TV come gatekeeper, lobbying MFE.',
        sourceMeta: 'Ofcom · ACT-DMA letter · 2026',
      },
    ],
    source: '[Placeholder · sezione da chiudere con il deep-dive AGCOM definitivo]',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 12 · STRATEGIC SHIFT 05 · Fearless Testing Culture
  //   Cornice trasversale: sperimentare veloce, fallire piccolo.
  //   Contenuto: descrizione mappa-poster verbatim + evidenze GIA presenti
  //   nel deck (pilot Fascino/Witty, MVP Flow, AdManager iterativo).
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'navy', sectionId: 'shifts',
    shortLabel: '12 · Shift 5 · Fearless Testing Culture [PLACEHOLDER]',
    panelColor: 'navy',
    kicker: 'STRATEGIC SHIFT 05 · Fearless Testing Culture',
    title: 'FEARLESS TESTING\nCULTURE',
    subtitle: '[Placeholder · da popolare] Experiment fast, fail small. Learn faster than others.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 05',
      titleOverride: 'XX\nXX',
      numbers: [
        { value: 'XX', tag: 'XX', label: 'XX' },
        { value: 'XX', tag: 'XX', label: 'XX' },
        { value: 'XX', tag: 'XX', label: 'XX' },
        { value: 'XX', tag: 'XX', label: 'XX' },
      ],
      senseLine: 'XX',
    },
    sections: [
      {
        type: 'bullet', num: '01 · XX',
        heading: 'XX',
        body: 'XX',
        sourceMeta: 'XX',
      },
      {
        type: 'bullet', num: '02 · XX',
        heading: 'XX',
        body: 'XX',
        sourceMeta: 'XX',
      },
      {
        type: 'bullet', num: '03 · XX',
        heading: 'XX',
        body: 'XX',
        sourceMeta: 'XX',
      },
    ],
    source: '[Placeholder · da popolare]',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 12 · STRATEGIC SHIFT 06 · Catalogo → Engagement continuo
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleBlue', sectionId: 'shifts',
    shortLabel: '12 · Shift 6 · Catalogo → Engagement continuo',
    panelColor: 'indigo',
    kicker: 'STRATEGIC SHIFT 06 · Catalogo → Engagement continuo',
    title: 'CATALOGO\n→ ENGAGEMENT CONTINUO',
    subtitle: 'L\'unità di misura non è più la stagione, è l\'IP che vive 12 mesi. La community è l\'asset.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 06',
      titleOverride: 'L\'IP CHE VIVE\n12 MESI',
      numbers: [
        { value: '2 mld',  tag: 'SHORTS CTV', label: 'Ore/mese su connected TV (mag 2026) · vertical è formato CTV nativo' },
        { value: '215K',   tag: 'COMMUNITY',  label: 'Membri attivi Grande Fratello su Infinity' },
        { value: '6 / 0',  tag: 'FEED AI',    label: 'Top SVOD con feed AI personalizzato vs Infinity oggi' },
        { value: '+35-42%',tag: 'POTENZIALE', label: 'Revenue vs AVOD Infinity attuale (mid-case €60-95M/anno)' },
      ],
      senseLine: 'L\'unità di misura non è più la stagione: è l\'IP che vive 12 mesi.',
    },
    sections: [
      {
        stat: '2 mld', label: 'STATO DEL MERCATO · ORE/MESE SHORTS SU CTV',
        body: 'Gli Shorts hanno toccato 2 mld ore/mese su CTV (mag 2026): il vertical non è più mobile-only. Netflix attribuisce l\'80% del viewing al motore di raccomandazione: l\'utente 2026 non sfoglia un catalogo, apre l\'app e si aspetta che parta. → Per Infinity: serve un feed, non una griglia.',
      },
      {
        stat: '215K', label: 'COSA MFE HA GIÀ · COMMUNITY + CATALOGO',
        body: 'Community GF 215K, Amici 142M views/12M interazioni, Masterchef +74% YoY, 184.464 ore di catalogo (46,3% in-house). La materia prima dell\'engagement continuo è già qui. → Per Infinity: manca l\'orchestrazione, non gli asset.',
      },
      {
        stat: '6 / 0', label: 'CASI DI RIFERIMENTO · FEED AI-PERSONALIZZATO',
        body: '6 piattaforme top hanno il feed AI premium: Netflix Fast Laughs, Disney For You, TF1+ Pour vous, ITVX Hubble, Joyn Smart Feed, BBC Quickview. Infinity è l\'unico top-EU broadcaster commerciale senza. → Per Infinity: è il gap di prodotto più visibile.',
      },
      {
        stat: 'H2 2026', label: 'ROADMAP · MVP FLOW → 5 UNIVERSI',
        body: 'H2 2026 MVP Infinity Flow + 1 universo IP · H1 2027 3 universi + Show Pass · H2 2027 5 universi + commerce. ⚠ Netflix Fast Laughs ridimensionato 2024 per cannibalizzazione long-form: business case quantificato pre-lancio.',
      },
      {
        stat: '€60-95M', label: 'ECONOMICS · MID-CASE +35-42% vs AVOD ATTUALE',
        body: 'Mid-case €60-95M/anno = +35-42% vs Infinity AVOD attuale. Il feed non è linea-aggiuntiva: è il moltiplicatore che porta l\'utente dal time-killer al catalogo lungo. → Per Infinity: ROI sull\'AVOD esistente, non un nuovo business da costruire.',
      },
    ],
    source: 'TechCrunch/YouTube 14 mag 2026 · StackAdapt/AdvancedTV 2026 · Parrot Analytics 2024-2025 · PrimaOnline + Messaggero 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 13 · STRATEGIC SHIFT 07 · Inventory → Audience & Commerce
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'magenta', sectionId: 'shifts',
    shortLabel: '13 · Shift 7 · Inventory → Audience & Commerce',
    panelColor: 'pink',
    kicker: 'STRATEGIC SHIFT 07 · Inventory → Audience & Commerce',
    title: 'INVENTORY\n→ AUDIENCE & COMMERCE',
    subtitle: 'AdManager live da 18 mesi. 1.000+ PMI attive. Estate 2026 lancio Spagna e Germania.',
    statSlide: {
      kickerOverride: 'I NUMERI · SHIFT 07',
      titleOverride: 'DA SCALARE,\nNON DA LANCIARE',
      numbers: [
        { value: '$224M', tag: '#1 AVOD IT',  label: 'Ricavi adv 2025 · 4× RaiPlay · 8× Netflix Italy ad-tier' },
        { value: '1.000+',tag: 'PMI LIVE',    label: 'Attive su AdManager (mar 2026) · ES+DE estate 2026' },
        { value: '40,9%', tag: 'MARKET SHARE',label: 'MFE Italia adv 2024 · record assoluto' },
        { value: '47,2%', tag: 'DIGITAL > TV',label: 'Digitale vs TV 38,4% · pubblicitario IT 2024' },
      ],
      senseLine: 'AdManager è già live: la domanda è "scaliamo", non "lanciamo".',
    },
    sections: [
      {
        stat: '47,2%', label: 'STATO DEL MERCATO · DIGITAL > TV IT DAL 2020',
        body: 'Il digitale ha sorpassato la TV in Italia dal 2020 (47,2% vs 38,4%); CTV ad cresciuto 8× in 10 anni (~€180M). Netflix ad-tier a 250M MAV, Disney+ 41% su ad-tier, Prime 79% ad-supported: l\'ad-tier è growth driver, non cannibale. → Per Infinity: il vento è a favore.',
      },
      {
        stat: '$224M', label: 'COSA MFE HA GIÀ · #1 AVOD IT + PIRAMIDE UNICA',
        body: 'AdManager dal set 2024, 1.000+ PMI a mar 2026, ES+DE in arrivo estate 2026. Infinity #1 AVOD IT $224M (4× RaiPlay). Concessionaria piramide unica + CDP unica + 40,9% market share. → Per Infinity: macchina di vendita già accesa.',
      },
      {
        stat: '3 / 3', label: 'CASI · BROADCASTER EU CON SELF-SERVICE',
        body: 'TF1 (TF1 Ad Manager gen 2026 + tier PMI apr 2026), ITVX (self-service via Magnite), SevenOne in Germania (dal 2022): i 3 broadcaster EU comparabili hanno tutti il self-service. → Per Infinity: è lo standard, non un azzardo.',
      },
      {
        stat: '-$5,6 mld', label: '⚠ ANTI-PATTERN · XANDR + OATH',
        body: 'Xandr (-$600M in 3 anni) + Oath (-$4,6B writedown 2018): il consolidamento deve puntare all\'attivazione interna cross-channel, NON a costruire un SSP/DSP open-market. → Per Infinity: evitare la trappola ad-tech, restare sul vendor di propria audience.',
      },
      {
        stat: '€44-170M', label: 'ROADMAP + ECONOMICS · 3 SCENARI',
        body: 'Target 5.000 PMI IT, poi ES+DE. Scenari Low €44M / Mid €80M / High €170M anno · payback <12 mesi (Mid/High). → Per Infinity: ROI sotto l\'anno, blocca €58-205M/anno di potenziale.',
      },
    ],
    source: 'MFE Annual Report 2024 p.10-13 · OMDIA Apr 2026 · TF1 FY 2025 · Osservatori Digital Innovation 2024 · Brand-News mar 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 12 · BUCKET 1 INTRO · Content & IP Engine (Globe hero + scrollable 4 actions)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'navy', sectionId: 'b1',
    shortLabel: '12 · B1 · Content & IP Engine',
    thumb: __a('show-drama', 'jpg'), panelColor: 'purpleMid',
    bucket: 'BUCKET 01',
    storyNum: 1,
    heroType: 'globe',
    kicker: 'BUCKET 01 · CONTENT & IP ENGINE',
    title: 'CONTENT &\nIP ENGINE',
    subtitle: 'Produrre storie locali progettate per diventare europee. Crown Jewels che restano in casa. Creator che diventano partner. Show che non si spengono mai. Contenuti vertical nativi che scalano su Infinity Flow.\n\nEuropean IP Studio · MFE Creator TV · Always-On IP Ecosystems · Vertical First Studio.',
    source: 'Bucket 1 · 4 azioni · 41 evidenze nel dossier',
    heroThumbs: [
      { src: __a('show-drama', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-female', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-presenters', 'jpg'), w: 130, h: 180 },
      { src: __a('show-dance', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-male', 'jpg'),       w: 130, h: 180 },
      { src: __a('show-young', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-couple', 'jpg'),     w: 130, h: 180 },
    ],
    // 4 bucket-action preview pages (clickable jump to each detailed slide)
    sections: [
      {
        type: 'bullet', num: '01 · EUROPEAN IP STUDIO',
        heading: 'EUROPEAN IP STUDIO',
        body: 'I diritti restano in casa. Le storie nascono locali, vivono europee. Crown Jewels come asset strategico, cross-platform native approach, sport rights EU deals, new EU formats, creators collab.\n\n→ Slide 06 per il deep-dive (5 sotto-pagine).',
        image: __a('show-drama', 'jpg'),
        sourceMeta: 'Azione 01 · 5 pillars · vai a slide 06 per dettaglio',
      },
      {
        type: 'bullet', num: '02 · MFE CREATOR TV',
        heading: 'MFE CREATOR TV',
        body: 'Creator premium dentro un ecosistema broadcaster. Non creator economy "grezza". Creator + TV grammar + produzione premium. Modello cantera, OTT-first amplificato dai lineari, multiplier IPA 3,35×.\n\n→ Slide 07 per il deep-dive (4 sotto-pagine).',
        image: __a('presenter-1', 'jpg'),
        sourceMeta: 'Azione 02 · 4 pillars · vai a slide 07 per dettaglio',
      },
      {
        type: 'bullet', num: '03 · ALWAYS-ON IP ECOSYSTEMS',
        heading: 'ALWAYS-ON IP ECOSYSTEMS',
        body: 'Ogni grande show diventa ecosistema continuo. Non più la stagione, l\'IP che vive 12 mesi. Clips, backstage, podcasts, community, fandom, commerce. GF prototipo, 215K membri.\n\n→ Slide 08 per il deep-dive (4 sotto-pagine).',
        image: __a('show-young', 'jpg'),
        sourceMeta: 'Azione 03 · 4 pillars · vai a slide 08 per dettaglio',
      },
      {
        type: 'bullet', num: '04 · VERTICAL FIRST STUDIO',
        heading: 'VERTICAL FIRST STUDIO',
        body: 'Vertical native dentro Infinity Flow. Fascino × Witty TV pilot microdrama "Tutto in una notte" apr 2026. Mediaset Infinity microdrama/verts giugno 2026. YouTube Shorts: 2 mld ore/mese su CTV.\n\n→ Slide 09 per il deep-dive.',
        image: __a('show-male', 'jpg'),
        sourceMeta: 'Azione 04 · vai a slide 09 per dettaglio',
      },
    ],
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 06 · EUROPEAN IP STUDIO · MorphScroll carousel · 5 sub-pages
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'nearBlack', sectionId: 'b1',
    shortLabel: '13 · European IP Studio',
    panelColor: 'purpleMid', thumb: __a('show-drama', 'jpg'),
    kicker: 'Azione 01 · Bucket Content & IP Engine',
    title: 'EUROPEAN\nIP STUDIO',
    subtitle: 'I diritti restano in casa. Le storie nascono locali, vivono europee.',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 01 · BUCKET 1',
      numbers: [
        { value: '30 / 15%',tag: 'CROWN JEWELS',label: 'Unscripted / Scripted ad alto impatto · prima finestra in casa' },
        { value: 'IT/ES/DE',tag: 'DAY ONE',     label: 'Shared rights + AI localization · windowing zero' },
        { value: 'ATP',     tag: '2026-28',     label: 'Finals signed feb 2026 · appointment-to-view sostenibile' },
        { value: 'Mare F.', tag: 'BENCH EU',    label: 'IP locale → riferimento europeo · industrializzare lo sviluppo' },
      ],
      senseLine: 'Chi controlla i format identificanti controlla la relazione con l\'utente.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · CROWN JEWELS COME RAISON D\'ÊTRE',
        heading: 'CROWN JEWELS COME RAISON D\'ÊTRE',
        body: 'Dal 2022 i grandi studios hanno smesso di licenziare i titoli-bandiera: Disney ha ritirato Marvel e Star Wars da Netflix per riportarli in casa. Chi controlla i format identificanti — i \'crown jewels\', il 30% di unscripted e 15% di scripted ad alto impatto — controlla la relazione con l\'utente, non solo il palinsesto. Per Infinity vuol dire tenere in casa la prima finestra dei nostri IP forti, così il catalogo diventa un asset che porta e fidelizza pubblico.',
        image: __a('show-drama', 'jpg'),
        sourceMeta: 'Disney · feb 2022',
      },
      {
        type: 'bullet', num: '02 · CROSS-PLATFORM NATIVE APPROACH',
        heading: 'CROSS-PLATFORM NATIVE APPROACH',
        body: 'Un format è resiliente quando nasce già con un piano di distribuzione integrato — owned e third-party insieme, non aggiunto dopo. Pensare cross-platform fin dal concept, con shared rights pan-MFE e localizzazione AI, abbatte il costo di adattamento tra paesi. Per Infinity significa che ogni nuovo IP arriva pronto per IT, ES e DE dal primo giorno, senza windowing artificiale che disperde l\'audience.',
        image: __a('content-collage', 'jpg'),
        sourceMeta: 'Playbook MFE · 2026',
      },
      {
        type: 'bullet', num: '03 · SPORT RIGHTS EU DEALS',
        heading: 'SPORT RIGHTS EU DEALS',
        body: 'Lo sport è appointment-to-view: l\'unico contenuto che porta utenti in piattaforma in modo prevedibile e ricorrente — ed è per questo che streamer, YouTube e TikTok lo usano come motore di acquisizione. La strategia non è inseguire i grandi diritti che esplodono di costo, ma presidiare il mercato EU con diritti di prima e seconda fascia distribuiti per logica costo/beneficio. Per Infinity sono picchi di traffico programmabili a calendario.',
        image: __a('show-male', 'jpg'),
        sourceMeta: 'ATP Finals 2026-2028 signed · feb 2026',
      },
      {
        type: 'bullet', num: '04 · NEW EU CROWN JEWELS FORMATS',
        heading: 'NEW EU CROWN JEWELS FORMATS',
        body: 'Mare Fuori dimostra che un IP locale italiano può diventare un riferimento culturale europeo. L\'obiettivo è industrializzare questa capacità: una content factory che progetta, incuba e distribuisce nuovi format su scala continentale, riducendo la dipendenza dal singolo successo stagionale. Per Infinity significa un flusso costante di IP nuovi e scalabili che alimentano la piattaforma, non solo archivio.',
        image: __a('show-young', 'jpg'),
        sourceMeta: 'Benchmark Mare Fuori · 2020-2026',
      },
      {
        type: 'bullet', num: '05 · CREATORS COLLAB',
        heading: 'CREATORS COLLAB',
        body: 'I creator non sono solo un canale di distribuzione, ma partner editoriali. Il modello è la cantera: identificare creator premium e farli crescere OTT-first, amplificandoli poi sui lineari del gruppo (Cuatro, P7, Italia 1). La differenza è la TV grammar — non contenuti grezzi da feed, ma IP brand-safe ad alto valore pubblicitario. Per Infinity porta pubblico giovane e crea inventory adv premium nativa.',
        image: __a('presenter-1', 'jpg'),
        sourceMeta: 'Cantera model · OTT-first, broadcast-amplified',
      },
    ],
    source: 'European IP Studio · 5 pillars · indirizzo strategico Cardani',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 07 · MFE CREATOR TV · MorphScroll carousel · 4 sub-pages
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'purpleBlue', sectionId: 'b1',
    shortLabel: '14 · MFE Creator TV',
    panelColor: 'indigo', thumb: __a('presenter-1', 'jpg'),
    kicker: 'Azione 02 · Bucket Content & IP Engine',
    title: 'MFE\nCREATOR TV',
    subtitle: 'Creator premium dentro un ecosistema broadcaster. Non creator economy "grezza". Ma creator + TV grammar + produzione premium.',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 02 · BUCKET 1',
      numbers: [
        { value: '3,35×',  tag: 'IPA MULT.',  label: 'Multiplier influencer (WARC IPA 2025) · estrapolato a broadcaster + creator' },
        { value: 'CH4',    tag: '4STUDIO',    label: 'Benchmark partnership + revenue-share (non factory)' },
        { value: 'Premium',tag: 'CPM',        label: 'Verticali alto-CPM · brand safety · 1st-party data' },
        { value: 'Cantera',tag: 'LOOP',       label: 'OTT-first → amplificato sui lineari · acquisizione giovane' },
      ],
      senseLine: 'Layer editoriale, non canale YouTube brandizzato: pipeline premium-nativa-digitale assente oggi.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · CREATOR-FIRST, BROADCAST-READY',
        heading: 'CREATOR-FIRST, BROADCAST-READY',
        body: 'MFE Creator TV non è un canale YouTube brandizzato Mediaset, ma un nuovo layer editoriale: creator selezionati su verticali ad alto valore pubblicitario (true crime, sport, food, documentary) prodotti con linguaggio e standard televisivi. Il contenuto nasce digitale e, quando scala, viene amplificato sui canali lineari. Per Infinity significa una pipeline di contenuto premium-ma-nativo-digitale che oggi in catalogo non esiste.',
        image: __a('presenter-1', 'jpg'),
        sourceMeta: 'Nuovo layer editoriale · OTT-first',
      },
      {
        type: 'bullet', num: '02 · IL MODELLO GIUSTO NON È LA FACTORY',
        heading: 'IL MODELLO GIUSTO NON È LA FACTORY',
        body: 'Le creator factory dei broadcaster hanno quasi sempre distrutto valore — Quibi, France TV Slash, BBC Three — perché centralizzano la produzione. Il modello che funziona è l\'opposto: partnership editoriali, revenue-share e IP condivisi, come Channel 4 con 4Studio. Per Infinity vuol dire agire da embassy dei creator premium, non da content farm: meno rischio industriale, più scala.',
        image: __a('show-presenters', 'jpg'),
        sourceMeta: 'Quibi · BBC Three · France TV Slash · case studies 2017-2023',
      },
      {
        type: 'bullet', num: '03 · PREMIUM ADV NATIVO',
        heading: 'PREMIUM ADV NATIVO',
        body: 'Il vantaggio competitivo è il contesto editoriale controllato: brand safety, produzione premium e first-party data, cose che il feed grezzo non offre. (WARC IPA 2025 misura un multiplier 3,35× per l\'influencer marketing; applicarlo al modello broadcaster + creator è una nostra estrapolazione.) Per Infinity significa inventory pubblicitaria che vale di più a parità di reach.',
        image: __a('show-female', 'jpg'),
        sourceMeta: 'WARC IPA · 2025 · multiplier 3,35×',
      },
      {
        type: 'bullet', num: '04 · LA CANTERA CHE ALIMENTA IL PALINSESTO',
        heading: 'LA CANTERA CHE ALIMENTA IL PALINSESTO',
        body: 'I creator che performano sulla piattaforma ottengono finestre di visibilità su Cuatro, P7, Italia 1: la cantera digitale alimenta il lineare, il lineare legittima il creator. È un loop che aumenta reach e valore editoriale su entrambi i lati. Per Infinity è un motore di acquisizione di pubblico giovane che si auto-rinforza.',
        image: __a('presenter-2', 'jpg'),
        sourceMeta: 'Modello cantera · OTT-first, broadcast-amplified',
      },
    ],
    source: 'MFE Creator TV · 4 pillars · indirizzo strategico',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 08 · ALWAYS-ON IP ECOSYSTEMS · MorphScroll carousel · 4 sub-pages
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'magenta', sectionId: 'b1',
    shortLabel: '15 · Always-On IP Ecosystems',
    panelColor: 'pink', thumb: __a('show-young', 'jpg'),
    kicker: 'Azione 03 · Bucket Content & IP Engine',
    title: 'ALWAYS-ON\nIP ECOSYSTEMS',
    subtitle: 'Ogni grande show diventa ecosistema continuo. Non più la stagione, l\'IP che vive 12 mesi.',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 03 · BUCKET 1',
      numbers: [
        { value: '215K',   tag: 'GF',       label: 'Membri community Grande Fratello su Infinity (prototipo in casa)' },
        { value: '7',      tag: 'LAYER IP', label: 'Clip · backstage · podcast · community · fandom · commerce · social' },
        { value: '12',     tag: 'MESI',     label: 'Engagement annuale come metrica · non più rating prima serata' },
        { value: 'L.I./RPDR',tag: 'BENCH',  label: 'Love Island, Drag Race · IP che vivono come ecosistemi globali' },
      ],
      senseLine: 'Da stagione a IP sempre acceso: ogni interazione è first-party data, ponte engagement-monetizzazione.',
    },
    sections: [
      {
        type: 'bullet', num: '01 · DALLA STAGIONE ALL\'IP CHE VIVE 12 MESI',
        heading: 'DALLA STAGIONE ALL\'IP CHE VIVE 12 MESI',
        body: 'La metrica non è più il rating della prima serata, ma il tempo di engagement annuale sull\'IP. Love Island e Drag Race lo dimostrano: un format può vivere ben oltre la messa in onda, diventando community culturale permanente. Per Infinity cambia l\'unità di prodotto — da \'stagione\' a \'IP sempre acceso\', che tiene l\'utente nell\'app tutto l\'anno e non solo durante il programma.',
        image: __a('show-female', 'jpg'),
        sourceMeta: 'Love Island ITV · Drag Race franchise · benchmark global',
      },
      {
        type: 'bullet', num: '02 · OGNI SHOW DIVENTA UN ECOSISTEMA',
        heading: 'OGNI SHOW DIVENTA UN ECOSISTEMA',
        body: 'Ogni grande IP sviluppa layer continui di relazione con l\'audience: clip, backstage, podcast, community, fandom, commerce, momenti social. L\'obiettivo non è allungare il programma ma tenere viva la relazione 12 mesi. Per Infinity questo trasforma ogni show in un flusso costante di contenuto e touchpoint, riempiendo i vuoti tra una stagione e l\'altra.',
        image: __a('show-young', 'jpg'),
        sourceMeta: '7 layer continui · clips · podcasts · community · commerce',
      },
      {
        type: 'bullet', num: '03 · IL MODELLO ESISTE GIÀ DENTRO MFE',
        heading: 'IL MODELLO ESISTE GIÀ DENTRO MFE',
        body: 'Grande Fratello è già il prototipo: community attiva da 215K membri su Infinity, live 24/7, podcast, backstage, clip e fandom social — e Amici mostra dinamiche simili. Quello che manca non è la prova, è la sistematizzazione: trasformare i singoli successi in un framework replicabile su tutto il portfolio. Per Infinity significa scalare un meccanismo già validato in casa, non inventarne uno nuovo.',
        image: __a('show-presenters', 'jpg'),
        sourceMeta: 'GF community Infinity · 215K membri attivi · PrimaOnline + Messaggero 2025',
      },
      {
        type: 'bullet', num: '04 · IL VALORE DEL LOOP ALWAYS-ON',
        heading: 'IL VALORE DEL LOOP ALWAYS-ON',
        body: 'Ogni interazione nell\'ecosistema genera first-party data, che alimenta il targeting pubblicitario e apre layer di commerce e sponsorship contestuale. L\'inserzionista non compra più uno spot, ma un ecosistema continuo di touchpoint premium con audience profilata e brand-safe. Per Infinity è il ponte diretto tra engagement e monetizzazione.',
        image: __a('content-collage', 'jpg'),
        sourceMeta: 'Sponsorship contestuale · audience profilata · brand-safe EU scale',
      },
    ],
    source: 'Always-On IP Ecosystems · 4 pillars · indirizzo strategico',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 09 · Vertical Commissioning ⚠ riformulato · 2 mld
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleBlue', sectionId: 'b1',
    shortLabel: '16 · Vertical First Studio',
    panelColor: 'indigo', thumb: __a('show-dance', 'jpg'),
    kicker: 'Azione 04 · Bucket Content & IP Engine',
    storyNum: 4,
    title: 'VERTICAL NATIVE\nDENTRO INFINITY FLOW.',
    subtitle: 'Netflix, Disney e Amazon lanciano clip verticali a maggio 2026: la categoria è mainstream. MFE è già in produzione — il pivot non è ipotesi, è calendario.',
    image: __a('show-dance', 'jpg'),
    imagePos: 'center 30%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 04 · BUCKET 1',
      numbers: [
        { value: '2 mld', tag: 'SHORTS CTV', label: 'Ore/mese su connected TV · categoria già massiva, non emergente' },
        { value: 'APR',   tag: 'PILOT 2026', label: 'Fascino × Witty "Tutto in una notte" · in casa' },
        { value: 'GIU',   tag: 'INFINITY 26',label: 'Mediaset Infinity microdrama/verts · live giugno 2026' },
        { value: 'Top-of-funnel', tag: 'DISCOVERY ENTRY', label: 'Vertical clip = gancio per portare l\'utente al catalogo lungo · alimenta Infinity Flow' },
      ],
      senseLine: 'Vertical nel feed è il punto d\'ingresso (top-of-funnel), non la destinazione: alimenta Infinity Flow e accompagna l\'utente al catalogo, non lo sostituisce.',
    },
    sections: [
      {
        stat: 'MAG', suffix: ' 2026',
        label: 'È UN CALENDARIO, NON UNA SCOMMESSA',
        body: 'Netflix Clips, Disney Verts e Amazon Prime Clips sono stati lanciati tutti a maggio 2026. Quando i tre major lanciano lo stesso formato nello stesso mese non è una categoria emergente: è comportamento mainstream già misurato su connected TV, e la finestra di vantaggio si conta in mesi, non in anni. Per Infinity è il segnale che il vertical va presidiato ora.',
        thumbs: [
          { src: __a('show-young', 'jpg'),      x: 0.16, y: 0.26, w: 170, h: 110, rotate: -5, opacity: 0.85 },
          { src: __a('show-dance', 'jpg'),      x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'), x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.80 },
        ],
      },
      {
        stat: 'GIU', suffix: ' 2026',
        label: 'MFE È GIÀ IN PRODUZIONE',
        body: 'MFE è già in produzione: il pilot microdrama "Tutto in una notte" (Fascino × Witty TV, aprile 2026) e i microdrama/verts di Mediaset Infinity da giugno 2026. Non chiediamo di iniziare — chiediamo di scalare ciò che è già partito. Per Infinity significa che il formato vertical è già dentro casa: manca solo la spinta industriale.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),     x: 0.18, y: 0.30, w: 160, h: 100, rotate: -4, opacity: 0.82 },
          { src: __a('show-female', 'jpg'),     x: 0.50, y: 0.74, w: 180, h: 115, rotate: -2, opacity: 0.78 },
          { src: __a('show-presenters', 'jpg'), x: 0.84, y: 0.32, w: 170, h: 110, rotate: 5,  opacity: 0.78 },
        ],
      },
      {
        stat: '03', label: 'DENTRO INFINITY FLOW',
        body: 'Il vertical non vive in un silo separato ma dentro il feed editoriale: è il gancio di discovery (top-of-funnel) che porta l\'utente al catalogo lungo, non un prodotto fine a sé. Per Infinity la fabbrica vertical alimenta Infinity Flow e accompagna l\'utente al catalogo premium — non lo sostituisce.',
        thumbs: [
          { src: __a('presenter-2', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -3, opacity: 0.85 },
          { src: __a('show-male', 'jpg'),      x: 0.86, y: 0.30, w: 160, h: 100, rotate: 4,  opacity: 0.78 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.78, w: 170, h: 110, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'Mediaset Classics',    thumb: __a('show-presenters', 'jpg'), imagePos: 'center 25%', slideIdx: 19 },
      { shortLabel: 'Take-away B1 Content', thumb: __a('content-collage', 'jpg'), imagePos: 'center',     slideIdx: 20 },
    ],
    source: 'TechCrunch/YouTube · 14 mag 2026 · TIVU\' apr 2026 (Fascino × Witty) · OMDIA · ott 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 14 · Mediaset Classics · 40 anni catalogo cult · asset MFE-only
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'magenta', sectionId: 'b1',
    shortLabel: '17 · Mediaset Classics',
    panelColor: 'pink', thumb: __a('show-presenters', 'jpg'),
    kicker: 'Approfondimento B1 · Mediaset Classics',
    storyNum: 5,
    title: '40 ANNI DI CULT.\nASSET MFE-ONLY.',
    subtitle: 'Un catalogo che né Netflix né Disney possono replicare.',
    image: __a('show-presenters', 'jpg'),
    imagePos: 'center 25%',
    statSlide: {
      kickerOverride: 'I NUMERI · APPROFONDIMENTO B1',
      numbers: [
        { value: '40+',  tag: 'ANNI',      label: 'Catalogo Mediaset/Fininvest · cult assoluti 30-45enni IT' },
        { value: 'MFE',  tag: 'ASSET',     label: 'Non replicabile da Netflix né Disney · costo marginale ~zero' },
        { value: 'TikTok',tag: 'DEMAND',   label: 'Milioni di views non autorizzate su archivio già fuori perimetro' },
        { value: '30+',  tag: 'KPI',       label: 'Retention a 30+ giorni come misura (non solo click iniziali)' },
      ],
      senseLine: 'Domanda già provata fuori dal perimetro, asset già in casa: si tratta di intercettare, non di costruire.',
    },
    sections: [
      {
        stat: '01', label: 'ASSET DIFENDIBILE · MFE-ONLY',
        body: '40 anni di cult (Drive In, Non è la Rai, Bim Bum Bam, primo GF, primi Amici, Forum, Striscia anni \'90): asset MFE-only che nessun competitor globale può replicare. La nostalgia entertainment è categoria in crescita strutturale in Europa. → Per Infinity: contenuto a costo marginale quasi zero, unico al mondo.',
        thumbs: [
          { src: __a('show-presenters', 'jpg'), x: 0.16, y: 0.26, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('presenter-1', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-drama', 'jpg'),      x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '02', label: 'DEMAND GIÀ PROVATA FUORI DAL PERIMETRO',
        body: 'La domanda esiste già: milioni di view non autorizzate sull\'archivio su TikTok e YouTube. La proposta è intercettarla con un feed dedicato dentro Infinity — non un\'app separata, lezione anti-frammentazione. → Per Infinity: acquisizione di pubblico su una domanda già misurata.',
        thumbs: [
          { src: __a('content-collage', 'jpg'), x: 0.50, y: 0.30, w: 220, h: 140, rotate: -2, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),      x: 0.16, y: 0.74, w: 160, h: 100, rotate: 4,  opacity: 0.78 },
          { src: __a('show-dance', 'jpg'),      x: 0.86, y: 0.74, w: 160, h: 100, rotate: -3, opacity: 0.78 },
        ],
      },
      {
        stat: '⚠', label: 'IL VINCOLO · AUDIT DIRITTI + KPI RETENTION',
        body: 'Audit diritti come pre-condizione (talent rights su Costanzo Show e alcune produzioni Fininvest storiche non sempre pieni). Rischio "archivio = click ma zero engagement" (precedente Flemish archive). → Per Infinity: misurare retention a 30+ giorni, non i soli click iniziali.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.30, w: 160, h: 100, rotate: -3, opacity: 0.60, blur: 1 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 160, h: 100, rotate: 4,  opacity: 0.55, blur: 1 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.78, w: 170, h: 110, rotate: 0,  opacity: 0.45, blur: 1 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'Vertical First Studio', thumb: __a('show-dance', 'jpg'),     imagePos: 'center 25%', slideIdx: 18 },
      { shortLabel: 'Take-away B1 Content',  thumb: __a('content-collage', 'jpg'),imagePos: 'center',     slideIdx: 20 },
    ],
    source: 'BBC Three relaunch feb 2022 · Witty TV/Fascino microdrama IT · TIVU\' apr 2026 · Necsus/Viewjournal Flemish archive plateau',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 15 · TAKE-AWAY B1 · Content & IP Engine
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'purpleDeep', sectionId: 'b1',
    shortLabel: '18 · Take-away B1 · Content',
    panelColor: 'purpleMid',
    kicker: 'Chiusura Bucket 1 · Take-away',
    statement: '5 mosse Content coordinate,\nnon 5 progetti separati.',
    body: 'Il Content & IP Engine MFE non si costruisce — si attiva. Asset, libreria, production capacity, talent partnership: ci sono già. Per ognuna delle 5 azioni del bucket, 2-4 competitor europei o americani hanno già operato a scala. Il vantaggio competitivo Mediaset non è inventare — è orchestrare il portfolio integrato linear + digital + production che nessun broadcaster commerciale EU ha al nostro livello.',
    bridgeLine: '→ Le 4 azioni vivono dentro IN.',
    donutPair: {
      todayLabel: 'OGGI · 2024',
      targetLabel: 'TARGET 2030',
      todayTotal: '184k h',
      targetTotal: '260k+ h',
      segments: [
        { label: 'In-house production',     color: '#C996FA', today: 46, target: 55 },
        { label: 'Licensed acquisitions',   color: '#8F48D2', today: 44, target: 25 },
        { label: 'EU co-productions',       color: '#F7A1DC', today: 10, target: 20 },
      ],
    },
    source: 'MFE Annual Report 2024 (184.464 ore · 46,3% in-house) · benchmark Disney/WBD/TF1/Channel 4/BBC · 2022-2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 10 · BUCKET 2 INTRO · Discovery & Experience
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Globe', scheme: 'purpleBlue', sectionId: 'b2',
    shortLabel: '19 · B2 · Discovery & Experience',
    thumb: __a('show-presenters', 'jpg'), panelColor: 'indigo',
    bucket: 'BUCKET 02',
    storyNum: 2,
    title: 'DISCOVERY &\nEXPERIENCE',
    subtitle: 'L\'esperienza utente deve diventare premium come quella social. Senza perdere la qualità del premium TV. Flow · Device-Native UX · Performance Room · Editorial Promotion.',
    source: 'Bucket 2 · 4 azioni · 18 evidenze + 45 cross-Shifts',
    thumbs: [
      { src: __a('presenter-1', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-presenters', 'jpg'), w: 130, h: 180 },
      { src: __a('show-tv', 'jpg'),         w: 130, h: 180 },
      { src: __a('presenter-2', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-male', 'jpg'),       w: 130, h: 180 },
      { src: __a('show-dance', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-young', 'jpg'),      w: 130, h: 180 },
    ],
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 11 · Infinity Flow
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleBlue', sectionId: 'b2',
    shortLabel: '20 · Infinity Flow',
    panelColor: 'indigo', thumb: __a('show-dance', 'jpg'),
    kicker: 'Azione 05 · Bucket Discovery & Experience',
    storyNum: 5,
    title: 'LA FACILITÀ DEL SOCIAL,\nLA QUALITÀ DEL PREMIUM',
    subtitle: 'Da catalogo navigato a contenuto servito. Il feed è dove il pubblico smette di cercare.',
    image: __a('show-dance', 'jpg'),
    imagePos: 'center 25%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 05 · BUCKET 2',
      numbers: [
        { value: '6 / 0',  tag: 'FEED AI',   label: 'Top SVOD col feed personalizzato vs Infinity oggi' },
        { value: '2024',   tag: 'NETFLIX',   label: 'Fast Laughs ridimensionato per cannibalizzazione long-form' },
        { value: 'GIU',    tag: 'INFINITY 26',label: 'Mediaset Infinity Flow live giugno 2026 · MVP' },
        { value: 'Curato', tag: 'EDITORIAL', label: 'Feed editoriale + algoritmico · differenza dal generico' },
      ],
      senseLine: 'Il feed porta al catalogo, non lo sostituisce: il vertical è hook, non destination.',
    },
    sections: [
      {
        stat: '01', label: 'TOP SVOD GLOBALI · IL PATTERN INDUSTRIALE',
        body: 'Tutte le top SVOD hanno il feed dentro l\'app (Fast Laughs 2020, For You 2021, Shorts 2020): è il pattern industriale del 2020-2026, non un esperimento. → Per Infinity: è il modo in cui l\'utente smette di cercare e inizia a essere servito.',
        thumbs: [
          { src: __a('show-dance', 'jpg'),     x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.80 },
        ],
      },
      {
        stat: '02', label: 'LEZIONE NETFLIX 2024 · FAST LAUGHS',
        body: 'Fast Laughs ridimensionato 2024 per cannibalizzazione del long-form. Il vertical è hook, non destination; il KPI è la conversione al catalogo. → Per Infinity: il feed porta al catalogo, non lo sostituisce.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.18, y: 0.30, w: 160, h: 100, rotate: -3, opacity: 0.80 },
          { src: __a('show-female', 'jpg'),    x: 0.84, y: 0.32, w: 160, h: 100, rotate: 5,  opacity: 0.78 },
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.75 },
        ],
      },
      {
        stat: '03', label: 'INFINITY FLOW · GIUGNO 2026',
        body: 'Non parte da zero: commissioning vertical operativo da giu 2026 (pilot Fascino × Witty apr 2026), feed curato editorialmente non solo algoritmico. → Per Infinity: è la differenza tra Infinity e un feed generico.',
        thumbs: [
          { src: __a('show-presenters', 'jpg'),x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.28, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.80 },
        ],
      },
    ],
    source: 'Netflix Newsroom · 2024 · Italia Oggi · 12 mag 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 12 · Device-Native UX · 6-8s vs <3s
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'nearBlack', sectionId: 'b2',
    shortLabel: '21 · Device-Native UX',
    panelColor: 'navy', thumb: __a('show-tv', 'jpg'),
    kicker: 'Azione 06 · Bucket Discovery & Experience',
    storyNum: 6,
    title: 'NON LA STESSA APP OVUNQUE.\nTRE CANTIERI MISURABILI.',
    subtitle: 'Voice-first. Profile portability + handoff mobile↔TV. Disciplina di execution, non scorciatoie.',
    image: __a('show-tv', 'jpg'),
    imagePos: 'center 30%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 06 · BUCKET 2',
      numbers: [
        { value: '6-8s',  tag: 'LAUNCH',  label: 'Infinity launch-to-play (stima) vs <3s Netflix benchmark' },
        { value: '3',     tag: 'CANTIERI',label: 'Voice-first · profile portability · handoff mobile↔TV' },
        { value: 'M ↔ TV',tag: 'HANDOFF', label: 'Stesso profilo, stesso punto di ripresa · feature premium' },
        { value: '⚠',     tag: 'ANTI-P.', label: 'HBO Max rebrand · Quibi · Continuity bassa adozione' },
      ],
      senseLine: 'Il premium si gioca sull\'esperienza, non solo sul contenuto: si fa giusta, non si imita.',
    },
    killerNumber: '6-8s',
    killerSuffix: ' vs <3s',
    killerLabel: 'Infinity vs Netflix · launch-to-play (stima). Tempo dal launch al play.',
    sections: [
      {
        stat: '01', label: 'VOICE-FIRST SEARCH',
        body: 'Voice-first search: il pattern d\'interazione dev\'essere nativo al device, non la stessa app ovunque. Sul TV voice + remote integration sono parte del cantiere; sul mobile sono opzionali ma differenzianti. → Per Infinity: il "premium" si gioca sull\'esperienza, non solo sul contenuto.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '02', label: 'PROFILE PORTABILITY + HANDOFF MOBILE↔TV',
        body: 'Profile portability + handoff mobile↔TV stile Apple Continuity: stesso profilo, stesso punto di ripresa, stessa coda passando da un device all\'altro. → Per Infinity: è la feature che separa l\'app premium dalla basic.',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.16, y: 0.30, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-female', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('presenter-1', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '⚠', label: 'ANTI-PATTERN · HBO MAX · QUIBI · CONTINUITY ADOPTION',
        body: 'HBO Max rebrand fragmentation 2023, Quibi UX premium senza pubblico, Apple Continuity adoption basso fuori ecosistema chiuso. Le 3 lezioni convergono: non c\'è scorciatoia, è disciplina di execution. → Per Infinity: la UX si fa giusta, non si imita.',
        thumbs: [
          { src: __a('presenter-2', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -3, opacity: 0.55, blur: 1 },
          { src: __a('show-presenters', 'jpg'),x: 0.84, y: 0.32, w: 170, h: 110, rotate: 4,  opacity: 0.50, blur: 1 },
          { src: __a('show-male', 'jpg'),      x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.45, blur: 1 },
        ],
      },
    ],
    source: 'HBO Max rebrand reports · 2023 · Apple Support · 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 13 · Performance Room ⚠ riformulato · €5-15M saving
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'navy', sectionId: 'b2',
    shortLabel: '22 · Performance Room',
    panelColor: 'navy', thumb: __a('show-tv', 'jpg'),
    kicker: 'Azione 07 · Bucket Discovery & Experience',
    storyNum: 7,
    title: 'LA DATA-ROOM\nEDITORIALE CHE MANCA',
    subtitle: 'Discovery senza misurazione è curation a sentimento. La Performance Room chiude il loop.',
    image: __a('show-tv', 'jpg'),
    imagePos: 'center 35%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 07 · BUCKET 2',
      numbers: [
        { value: 'DIC 24', tag: 'AUDITEL TA',label: 'Total Audience live · MFE/RAI/La7 · base misurabile già pronta' },
        { value: '51%',    tag: 'TV ON CTV', label: 'Tempo TV già su connected TV · cross-device misurato' },
        { value: '$100M',  tag: 'HOUSE OF C.',label: 'Netflix · investimento approvato senza pilot, solo su dati' },
        { value: '<12',    tag: 'MESI PAYB.',label: '€1-3M investimento · saving €5-15M/anno' },
      ],
      senseLine: 'La metrica decide, non il sentimento: trasforma audience in commissioning/scheduling/promo.',
    },
    sections: [
      {
        stat: 'TA', label: 'AUDITEL TOTAL AUDIENCE · LIVE DA DIC 2024',
        body: 'Auditel Total Audience live da dic 2024 (MFE/RAI/La7), 51% del tempo TV già su CTV: la data c\'è, manca il workflow editoriale. → Per Infinity: base misurabile cross-device già pronta, non da costruire.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '5', suffix: ' step',
        label: 'LOOP CHIUSO · DATI → DECISIONE SETTIMANALE',
        body: 'Loop chiuso a 5 step (raccogli → analizza → decidi → agisci → misura): trasforma audience in commissioning/scheduling/promo/pricing. → Per Infinity: rende ripetibile il successo del feed invece di affidarlo alla fortuna.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-female', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '$100M', label: 'BENCHMARK NETFLIX · HOUSE OF CARDS',
        body: 'Netflix House of Cards: $100M approvati senza pilot, solo su binge velocity + behavioral overlap. → Per Infinity: la metrica decide, non il sentimento. Investimento €1-3M, saving €5-15M/anno, payback < 12 mesi.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.82 },
          { src: __a('show-drama', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.78 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '€1-3M', label: 'INVESTIMENTO · PAYBACK < 12 MESI',
        body: 'Saving annuo €5-15M · payback < 12 mesi. La priorità non è il live interattivo per l\'utente, è il loop interno: editorial, commissioning, scheduling, pricing. → Per Infinity: infrastruttura di prodotto, non feature consumer.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-male', 'jpg'),      x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'Primaonline + Il Post · dic 2024 · StackAdapt + AdvancedTV · feb 2026 · Netflix House of Cards case study',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 14 · EDITORIAL PROMOTION · LongScroll (4 deep-dive sections)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'magenta', sectionId: 'b2',
    shortLabel: '23 · Editorial Promotion',
    panelColor: 'pink', thumb: __a('show-female', 'jpg'),
    kicker: 'Azione 08 · Bucket Discovery & Experience',
    storyNum: 8,
    title: 'ABBIAMO GIÀ\nLA PROVA INTERNA',
    subtitle: 'L\'asset promozionale più potente d\'Europa, già due volte quantificato. Scorri per i 4 decision-card.',
    image: __a('show-female', 'jpg'),
    imagePos: 'center 30%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 08 · BUCKET 2',
      numbers: [
        { value: '+128%', tag: 'VIOLA',     label: 'Viewing-time on-demand · lineare in linea · Infinity amplifica' },
        { value: '+33%',  tag: 'TALPA',     label: 'Lift Infinity · totale 3,115M (2,3M C5 + 815K Infinity)' },
        { value: '0%',    tag: 'BARBIE',    label: 'Controprova 2023 · "nessuno lo sapeva" · blockbuster ogni 3 mesi' },
        { value: '€60-95M',tag: 'AUTO-PROMO',label: 'Revenue addizionale low · €212M mid · auto-promo vendibile a terzi' },
      ],
      senseLine: 'Senza doctrina formale, un blockbuster ci sfugge ogni 3 mesi: la promo diventa asset commerciale, non filler.',
    },
    sections: [
      {
        stat: '+128', suffix: '%',
        label: 'VIOLA COME IL MARE 2 · VIEWING-TIME ON-DEMAND',
        body: 'TESI · La prima evidenza interna che Infinity-as-platform amplifica il lineare. +128% viewing-time on-demand (lineare ~in linea), 12,5M ore on-demand, #1 contenuto on-demand del periodo.   DOMANDA · Trattiamo Infinity come prima finestra o resta accessorio?   ✓ RACCOMANDAZIONE A · First window 2-3 titoli/anno con marketing dedicato ≥€500K. L\'editore deve decidere ora se Infinity è una piattaforma o un\'app companion.   ⚠ RISCHIO · senza decisione formale, ogni first-window dipende dal singolo prodotto. Barbie si ripete ogni 3 mesi.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.22, w: 170, h: 110, rotate: -5, opacity: 0.88 },
          { src: __a('show-drama', 'jpg'),     x: 0.10, y: 0.62, w: 150, h: 95,  rotate: 4,  opacity: 0.75 },
          { src: __a('content-collage', 'jpg'),x: 0.86, y: 0.28, w: 180, h: 115, rotate: 5,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.88, y: 0.68, w: 160, h: 100, rotate: -4, opacity: 0.75 },
        ],
      },
      {
        stat: '+33', suffix: '%',
        label: 'LA TALPA 2024 · LIFT MULTIMEDIALE',
        body: 'TESI · Seconda prova quantificata. Totale multimediale 3,115M = 2,3M Canale 5 + 815K Infinity. Format streaming-native parallelo (La Talpa Detection settimanale).   DOMANDA · Drop strategy: binge full season o weekly classico TV?   ✓ RACCOMANDAZIONE A · Binge (modello Mare Fuori/RaiPlay): 8h on-demand + 1 ep/sett lineare. Viola 12,5M ore on-demand IT 2024 (record).   ⚠ RISCHIO · senza format streaming-native parallelo, perdiamo il lift incrementale.',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.14, y: 0.26, w: 160, h: 100, rotate: 4,  opacity: 0.85 },
          { src: __a('show-male', 'jpg'),      x: 0.10, y: 0.68, w: 150, h: 95,  rotate: -3, opacity: 0.7 },
          { src: __a('show-tv', 'jpg'),        x: 0.86, y: 0.28, w: 170, h: 110, rotate: -5, opacity: 0.82 },
          { src: __a('show-couple', 'jpg'),    x: 0.88, y: 0.68, w: 160, h: 100, rotate: 3,  opacity: 0.75 },
        ],
      },
      {
        stat: '0', suffix: '%',
        label: 'BARBIE 2023 · IL CONTROFATTUALE',
        body: 'TESI · La controprova. Anteprima Infinity 7-10 giorni. Nessuna promozione coordinata. "Nessuno lo sapeva." Soldi spesi a vuoto (CDO call dic 2023).   NUMERI · 0% lift Canale 5 · 0 visibility · 0 sistematizzazione.   ⚠ RISCHIO · Barbie si ripete ogni 3 mesi senza decisione formale. Un blockbuster Warner ci è già scappato di mano — senza doctrina interna, succederà ancora.',
        thumbs: [
          { src: __a('show-drama', 'jpg'),     x: 0.15, y: 0.30, w: 170, h: 110, rotate: -4, opacity: 0.35, blur: 1 },
          { src: __a('content-collage', 'jpg'),x: 0.85, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.30, blur: 1 },
          { src: __a('show-male', 'jpg'),      x: 0.50, y: 0.74, w: 150, h: 95,  rotate: 0,  opacity: 0.35, blur: 1 },
        ],
      },
      {
        stat: '€60-95', suffix: 'M',
        label: 'SISTEMATIZZARE IL PATTERN · REVENUE ADDIZIONALE LOW',
        body: 'TESI · 3 condizioni operative: promozione coordinata C5 ↔ Infinity · early window 7-14 giorni · format streaming-native parallelo.   DOMANDA · Auto-promo cross-canale come format pubblicitario vendibile a terzi?   ✓ RACCOMANDAZIONE A · Sì: brand integration nelle pillole auto-promo ("Viola torna domenica, presented by X"). €60-95M/anno scenario LOW, €212M mid. Nessun broadcaster EU lo fa: first-mover.   ⚠ RISCHIO · promo come "filler" invece che asset commerciale = lasciamo soldi sul tavolo.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.26, w: 160, h: 100, rotate: -4, opacity: 0.85 },
          { src: __a('show-presenters', 'jpg'),x: 0.84, y: 0.30, w: 160, h: 100, rotate: 4,  opacity: 0.8 },
          { src: __a('show-tv', 'jpg'),        x: 0.12, y: 0.70, w: 150, h: 95,  rotate: 3,  opacity: 0.75 },
          { src: __a('show-young', 'jpg'),     x: 0.88, y: 0.70, w: 160, h: 100, rotate: -3, opacity: 0.75 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'CTV Home Screen', thumb: __a('show-tv', 'jpg'),    imagePos: 'center 30%', slideIdx: 31 },
      { shortLabel: 'AdManager',       thumb: __a('show-female', 'jpg'),imagePos: 'center 25%', slideIdx: 37 },
      { shortLabel: 'Cosa è già in moto', thumb: __a('show-couple', 'jpg'), imagePos: 'center 25%', slideIdx: 43 },
    ],
    source: 'ANSA + Quotidiano + Sensemakers · mag 2024 · Affari Italiani + Mediaset Infinity press · nov 2024',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 21 · Joyn investe milioni. Infinity quasi zero. · gap intra-MFE
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'magenta', sectionId: 'b2',
    shortLabel: '24 · Joyn vs Infinity marketing',
    panelColor: 'pink', thumb: __a('show-young', 'jpg'),
    kicker: 'Approfondimento Azione 08 · Joyn vs Infinity · gap intra-MFE',
    storyNum: 8,
    title: 'JOYN INVESTE MILIONI.\nINFINITY QUASI ZERO.',
    subtitle: 'Stesso gruppo, modello validato, non replicato. La domanda al management non è "se investire" — è "perché non lo facciamo già come Joyn". Benchmark ITVX £165M dev + £45M Q4 brand 2022.',
    image: __a('show-young', 'jpg'),
    imagePos: 'center 25%',
    sections: [
      {
        stat: '01', label: 'IL GAP È DENTRO CASA MFE',
        body: 'Joyn (P7S1, controllata MFE) ha investito milioni in promozione + acquisition marketing 2024-2025. Risultato: MAU +37% YoY 2024. Modello validato dentro casa. Infinity IT: budget marketing dedicato quasi assente. La domanda al management non è "se investire" — è "perché non lo facciamo già come Joyn".',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('presenter-1', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '02', label: 'OTT EXCLUSIVE · WINDOWING STRATEGY',
        body: 'Servono contenuti esclusivi di appeal, windowing chiara (first window Infinity → second lineare / 3rd party). ATP Finals 2026-2028 signed feb 2026 è il primo asset sport-editorial in questa logica. Prova interna: Viola Come il Mare 2 +128% on-demand, La Talpa +33% lift Infinity.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-male', 'jpg'),      x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-drama', 'jpg'),     x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '£165M', label: 'OTT INVESTMENT · 3 COMPONENTI (ITVX BENCHMARK)',
        body: 'Captive su O&O (i programmi più visti come leva verso Infinity-as-platform, non title-by-title). Paid media (budget dedicato 2026-2028, KPI conversion/registrazione/retention). Earned (PR + creator amplification + cultural moments). Benchmark ITVX £165M dev + £45M Q4 brand 2022.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '04', label: 'OTT ACQUISITION · TARGET-DRIVEN',
        body: 'Obiettivi misurabili: X registrazioni/anno per fascia, conversion reach → registered user, retention 30/90/365gg. Profilazione segmenti (under-30, mamme, sport fans, news junkies). A matrice con content × windowing × distribution. Non è "spendere di più", è "spendere strutturato".',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-young', 'jpg'),     x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'CMO MFE contributo 2026 · ProSieben Annual Report 2024-25 · ITVX MarketingWeek/DixonBaxi 2022 · TF1 FY 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 22 · TAKE-AWAY B2 · Discovery & Experience
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'purpleBlue', sectionId: 'b2',
    shortLabel: '25 · Take-away B2 · Discovery',
    panelColor: 'indigo',
    kicker: 'Chiusura Bucket 2 · Take-away',
    statement: '4 anni di ritardo UX.\nAsset misurazione e CDP esistono.\nIl fix è prodotto + governance.',
    body: '5-6 player hanno già il feed AI-personalizzato. Mediaset è l\'unico top-EU broadcaster commerciale senza. La Performance Room richiede l\'integrazione Auditel TA (live) e CDP (già unica internamente) — entrambi esistono. L\'asset promozionale MFE vale €95-380M/anno a CPM mercato — leva non replicabile da Netflix/Disney/Apple.',
    bridgeLine: '→ Flow, UX, Performance Room, Editorial Promo: feature di IN.',
    donutPair: {
      todayLabel: 'OGGI · 2026',
      targetLabel: 'TARGET 2030',
      todayTotal: 'TV time',
      targetTotal: 'TV time',
      segments: [
        { label: 'Linear TV',           color: '#A0B4FF', today: 49, target: 25 },
        { label: 'Streaming on-demand', color: '#6366F1', today: 31, target: 50 },
        { label: 'Social / vertical',   color: '#F7A1DC', today: 20, target: 25 },
      ],
    },
    source: 'StackAdapt/AdvancedTV 2026 (51% CTV) · Auditel TA dic 2024 · OMDIA Apr 2026 · benchmark UX broadcaster EU 2019-2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 15 · BUCKET 3 INTRO · Distribution & Scale
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Globe', scheme: 'nearBlack', sectionId: 'b3',
    shortLabel: '26 · B3 · Distribution & Scale',
    thumb: __a('show-male', 'jpg'), panelColor: 'navy',
    bucket: 'BUCKET 03',
    storyNum: 3,
    title: 'DISTRIBUTION,\nSCALE & ECOSYSTEM',
    subtitle: 'Infinity IT, Infinity ES, Joyn DE al centro della relazione. Tutto il resto è amplificatore. Owned First · YouTube Embassy · CTV Home Screen S4 · European Identity Layer S1.',
    source: 'Bucket 3 · 4 azioni · 26 evidenze + 66 cross-Shifts',
    thumbs: [
      { src: __a('show-male', 'jpg'),       w: 130, h: 180 },
      { src: __a('show-drama', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-couple', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-tv', 'jpg'),         w: 130, h: 180 },
      { src: __a('show-female', 'jpg'),     w: 130, h: 180 },
      { src: __a('presenter-2', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-young', 'jpg'),      w: 130, h: 180 },
    ],
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 16 · Owned First, Distributed Smart · 77% reach
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'navy', sectionId: 'b3',
    shortLabel: '27 · Owned First',
    panelColor: 'navy', thumb: __a('show-couple', 'jpg'),
    kicker: 'Azione 09 · Bucket Distribution & Scale',
    storyNum: 9,
    title: 'LA RELAZIONE UTENTE\nNON SI VENDE',
    subtitle: 'Prima la nostra finestra, poi tutto il resto. Template MFE: ProSieben sotto Giordani 77% total reach.',
    image: __a('show-couple', 'jpg'),
    imagePos: 'center 25%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 09 · BUCKET 3',
      numbers: [
        { value: '77%',   tag: 'P7 TEMPLATE', label: 'ProSieben total reach · AVOD +36% YoY consolidando Joyn' },
        { value: '⚠',     tag: 'ANTI-PATT.', label: 'Suburra → Netflix · Gomorra → Sky · cash, relazione persa' },
        { value: '2023',  tag: 'DOTTRINA',   label: 'Disney · WBD · Paramount · P7S1 · library deal stop' },
        { value: 'Centro',tag: 'ARCHITECT.', label: 'Infinity IT/ES + Joyn DE al centro · YT/Meta/TikTok satelliti' },
      ],
      senseLine: 'La prima finestra non si vende: relazione persa = errore irreversibile.',
    },
    sections: [
      {
        stat: '01', label: 'DOTTRINA POST-2023 · DISNEY, WBD, PARAMOUNT, P7S1',
        body: 'Dottrina post-2023 (Disney, WBD, Paramount, P7S1): i library deal estraggono cash una-tantum e regalano la relazione al competitor. → Per Infinity: la prima finestra non si vende.',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('show-drama', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.80 },
        ],
      },
      {
        stat: '⚠', label: 'ANTI-PATTERN MFE · 2018-2022',
        body: 'Vendendo Suburra a Netflix e Gomorra a Sky si è incassato una-tantum, ma il pubblico è andato a cercare il seguito sulla loro app. → Per Infinity: relazione persa = errore irreversibile.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.60, blur: 1 },
          { src: __a('show-female', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.55, blur: 1 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.50, blur: 1 },
        ],
      },
      {
        stat: '77%', label: 'TEMPLATE MFE · PROSIEBENSAT.1 SOTTO GIORDANI',
        body: 'Template ProSieben sotto Giordani: 77% total reach + AVOD +36% YoY consolidando Joyn come destinazione primaria. → Per Infinity: lo stesso muscolo si applica qui.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('presenter-1', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: 'O→D', label: 'ARCHITETTURA · OWNED FIRST, DISTRIBUTED SMART',
        body: 'Infinity IT/ES + Joyn DE al centro; YouTube, Meta, TikTok, aggregator e lineari come satelliti — non come destinazioni primarie. → Per Infinity: distribuire sì, dipendere no.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    decisionCard: {
      domanda: 'Prima finestra: cediamo mai? Owned First è dottrina assoluta o ammette eccezioni a valle?',
      raccomandazione: 'Owned-first non negoziabile sulla prima finestra. Architettura "Owned First, Distributed Smart": Infinity IT/ES + Joyn DE al centro; YouTube, Meta, TikTok, aggregator, lineari, internazionali come satelliti — non come destinazioni primarie.',
      rischio: 'Anti-pattern MFE 2018-2022: Suburra → Netflix, Gomorra → Sky. Cash una-tantum, relazione utente persa al competitor in modo irreversibile.',
    },
    source: 'ProSieben annual report · 2024-2025 · Variety · mar 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 17 · YouTube Embassy · ~1,04M vs 30 canali
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleBlue', sectionId: 'b3',
    shortLabel: '28 · YouTube Embassy',
    panelColor: 'indigo', thumb: __a('show-presenters', 'jpg'),
    kicker: 'Azione 10 · Bucket Distribution & Scale',
    storyNum: 10,
    title: 'IL CANALE AUTONOMO\nCHE CI MANCA',
    subtitle: 'YouTube non è competitor da cui difendersi: è ambasciata da presidiare.',
    image: __a('show-presenters', 'jpg'),
    imagePos: 'center 20%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 10 · BUCKET 3',
      numbers: [
        { value: '+169%', tag: 'CH4',       label: 'Full-episode views YoY · ~30 canali tematici · team dedicato' },
        { value: '30 / 1',tag: 'GAP',       label: 'Channel 4 canali vs Infinity oggi · gap strutturale 30×' },
        { value: '~1,04M',tag: 'INFINITY',  label: 'Iscritti unico canale YouTube (mag 2026, stima)' },
        { value: 'BBC',   tag: 'REV-SHARE', label: 'Partnership BBC × YT (gen 2026) · pattern deal strutturati' },
      ],
      senseLine: 'YouTube come embassy, non come funnel: monetizzazione + acquisizione, non dispersione.',
    },
    sections: [
      {
        stat: '01', label: 'YOUTUBE ≠ FUNNEL · YOUTUBE = CANALE AUTONOMO',
        body: 'YouTube non è funnel ma canale autonomo dove i broadcaster EU già fatturano: presenza presidiata, clip d\'acquisizione sì, catalogo premium no. → Per Infinity: monetizzazione + acquisizione, non dispersione.',
        thumbs: [
          { src: __a('show-presenters', 'jpg'),x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('show-young', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '+169%', label: 'CHANNEL 4 · 30 CANALI TEMATICI',
        body: 'Channel 4: full-episode views +169% YoY, ~30 canali tematici, team dedicato — una unit revenue-generating, non una pagina social. → Per Infinity: il gap è strutturale (30× sui canali).',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-female', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: 'BBC', suffix: ' 2026',
        label: 'BBC · PARTNERSHIP REVENUE-SHARE · GEN 2026',
        body: 'BBC × YouTube revenue-share gen 2026, Lega Serie A 10M iscritti: pattern di deal strutturati. → Per Infinity: roadmap 10 canali H2 2026 → 30 H1 2027, embassy non funnel.',
        thumbs: [
          { src: __a('presenter-2', 'jpg'),    x: 0.16, y: 0.30, w: 170, h: 110, rotate: -3, opacity: 0.85 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-male', 'jpg'),      x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '~1,04M', label: 'MEDIASET INFINITY · 1 CANALE · IL GAP DA CHIUDERE',
        body: 'Mediaset Infinity 1 canale, ~1,04M iscritti (stima): la distanza con Channel 4 è 30× sui canali. Roadmap operativa: H2 2026 → 10 canali tematici, H1 2027 → 30 canali + team commerciale dedicato.',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.82 },
          { src: __a('show-drama', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'Channel 4 annual report · 2025 · BBC press release · gen 2026 · SocialBlade (stima)',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 18 · CTV HOME SCREEN · LongScroll (4 deep-dive sections)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'navy', sectionId: 'b3',
    shortLabel: '29 · CTV Home Screen',
    panelColor: 'navy', thumb: __a('show-tv', 'jpg'),
    kicker: 'Azione 11 · Bucket Distribution & Scale',
    storyNum: 11,
    title: 'L\'UNICA ARMA REGOLATORIA\nCHE NÉ NETFLIX NÉ DISNEY HANNO',
    subtitle: 'AGCOM SIG: rail home obbligatoria su smart TV IT. Tre leve regolatorie convergono in 12 mesi.',
    image: __a('show-tv', 'jpg'),
    imagePos: 'center 35%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 11 · BUCKET 3',
      numbers: [
        { value: 'OTT 25', tag: 'AGCOM SIG',  label: 'Rail home obbligatorio · RAI/MFE/La7/Sky/WBD · solo IT' },
        { value: '67%',    tag: 'SAMSUNG+LG', label: 'Smart TV IT · control point + compliance-by-design' },
        { value: 'Fine 26',tag: 'OFCOM 9-T.', label: 'UK consultazione · codice atteso · template potenziale' },
        { value: '24 MAR', tag: 'DMA LETTER', label: '2026 · EBU/ACT/egta/AER · OS smart-TV come gatekeeper' },
      ],
      senseLine: 'Posizione di accesso che né Netflix né Disney possono avere: lobbying per level playing field.',
    },
    sections: [
      {
        stat: 'OTT', suffix: ' 2025',
        label: 'AGCOM SIG · ITALIA · RAIL HOME OBBLIGATORIA',
        body: 'TESI · Rail home obbligatoria su smart TV vendute in IT. RAI/MFE/La7/Sky/WBD inclusi. Né Netflix né Disney+ possono replicarlo.   DOMANDA · Stack addressable: Google primary o multi-vendor?   ✓ RACCOMANDAZIONE A · Google primary + secondary vendor (Magnite/PubMatic) per resilienza. AT&T Xandr $1B write-off + Verizon Oath $4,6B writedown = single-vendor lock-in è anti-pattern.   ⚠ RISCHIO · single-vendor lock-in azzera resilienza commerciale.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.24, w: 180, h: 115, rotate: -5, opacity: 0.85 },
          { src: __a('show-presenters', 'jpg'),x: 0.10, y: 0.66, w: 150, h: 95,  rotate: 4,  opacity: 0.7 },
          { src: __a('infinity-logo', 'png'),  x: 0.86, y: 0.30, w: 170, h: 108, rotate: 5,  opacity: 0.88 },
          { src: __a('show-couple', 'jpg'),    x: 0.88, y: 0.68, w: 160, h: 100, rotate: -3, opacity: 0.78 },
        ],
      },
      {
        stat: '9', label: 'OFCOM 9-TILE RULE · UK · CONSULTAZIONE (CODICE FINE 2026)',
        body: 'TESI · Prominenza PSB su smart TV — UK: consultazione Ofcom, codice atteso fine 2026 (non ancora in vigore). Template potenziale da monitorare, non ancora enforced.   IL TEMPLATE · 9 tile PSB in consultazione · enforcement non ancora attivo · vendor lineup atteso. Cosa funziona, cosa NO, già documentato.   ⚠ RISCHIO · senza replica EU di un meccanismo simile, il vantaggio italiano resta isolato.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.30, w: 220, h: 140, rotate: -3, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.16, y: 0.68, w: 150, h: 95,  rotate: 4,  opacity: 0.75 },
          { src: __a('show-male', 'jpg'),      x: 0.86, y: 0.68, w: 150, h: 95,  rotate: -4, opacity: 0.75 },
        ],
      },
      {
        stat: '24 MAR', suffix: ' 2026',
        label: 'ACT LETTER TO EC · MFE CO-FIRMATARIA',
        body: 'TESI · Lettera ACT/RTL/ProSieben/ITV/France TV alla Commissione UE per includere smart TV OS come gatekeeper DMA. MFE co-firmataria via ACT.   DOMANDA · AVMSD asymmetry vs VSP (YouTube/TikTok/Meta): lobbying attivo?   ✓ RACCOMANDAZIONE A · Lobbying attivo via EBU/ACT per level playing field 2026-2027. Il VSP regulatory gap è il singolo handicap competitivo strutturale dei broadcaster EU.   ⚠ RISCHIO · senza lobbying, smart TV OS resta fuori dal DMA, regole asimmetriche.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.15, y: 0.28, w: 150, h: 95,  rotate: -3, opacity: 0.8 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.72, w: 160, h: 100, rotate: 3,  opacity: 0.8 },
          { src: __a('show-male', 'jpg'),      x: 0.85, y: 0.30, w: 150, h: 95,  rotate: 4,  opacity: 0.78 },
        ],
      },
      {
        stat: '67', suffix: '%',
        label: 'PERIMETRO · SAMSUNG + LG SMART TV IT',
        body: 'TESI · Samsung 44% + LG 23% = 67% smart TV IT. YouTube 13,4% CTV viewing (USA, Nielsen). Big Tech (Google + Netflix + Amazon) = 43% concentration CTV ad entro 2030.   DOMANDA · Profilazione minori: come gestiamo DSA Art.28?   ✓ RACCOMANDAZIONE A · Compliance-by-design: feed kids = no profiling, separato. CNIL multa Criteo €40M GDPR (giu 2023) + ICO UK 18 multe 2024.   ⚠ RISCHIO · compliance reattiva = multe + reputation hit.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.30, w: 220, h: 140, rotate: -2, opacity: 0.85 },
          { src: __a('show-female', 'jpg'),    x: 0.15, y: 0.72, w: 150, h: 95,  rotate: -3, opacity: 0.7 },
          { src: __a('show-young', 'jpg'),     x: 0.86, y: 0.72, w: 150, h: 95,  rotate: 3,  opacity: 0.7 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'AdManager',         thumb: __a('show-female', 'jpg'), imagePos: 'center 25%', slideIdx: 37 },
      { shortLabel: 'European Identity', thumb: __a('content-collage', 'jpg'), imagePos: 'center',    slideIdx: 32 },
      { shortLabel: 'Cosa è già in moto', thumb: __a('show-couple', 'jpg'), imagePos: 'center 25%', slideIdx: 43 },
    ],
    source: 'AGCOM SIG · ott 2025 · Ofcom 9-tile consultazione (codice fine 2026) · ACT letter to EC · 24 mar 2026 · Nielsen + OMDIA · 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 19 · European Identity Layer S1 · 14-15M
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'navy', sectionId: 'b3',
    shortLabel: '30 · European Identity Layer',
    panelColor: 'purpleMid', thumb: __a('content-collage', 'jpg'),
    kicker: 'Azione 12 · Bucket Distribution & Scale',
    storyNum: 12,
    title: 'FEDERATION,\nNOT UNIFICATION',
    subtitle: 'Brand locali (Infinity IT, Infinity ES, Joyn DE), infrastruttura condivisa. Federation phased, non big-bang.',
    image: __a('content-collage', 'jpg'),
    imagePos: 'center',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 12 · BUCKET 3',
      numbers: [
        { value: 'IT+ES', tag: 'STACK LIVE',  label: 'Federation tecnica operativa · identity/login/dati comuni' },
        { value: 'Q1 27', tag: 'JOYN DE',     label: 'Estensione via front-end · sequenza phased non big-bang' },
        { value: '6,76M', tag: 'BEDROCK',     label: 'RTL · 4 mercati EU su uno stack unico · template funzionante' },
        { value: '€135M', tag: 'ANTI · SALTO',label: 'Bruciati su unification · ARD/ZDF + RTL/Talpa falliti' },
      ],
      senseLine: 'Federarsi, non fondersi: scala progressiva senza rischio merger.',
    },
    sections: [
      {
        stat: 'IT+ES', suffix: ' live',
        label: 'STACK FEDERATO · IT + ES LIVE (MAG 2026)',
        body: 'Stack IT+ES federato live (Mara, 18 mag 2026): identity/login/dati comuni, brand locali distinti. → Per Infinity: primo passo concreto della piattaforma EU.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.85 },
          { src: __a('show-male', 'jpg'),      x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-female', 'jpg'),    x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: 'Q1', suffix: ' 2027',
        label: 'ESTENSIONE JOYN DE · Q1 2027',
        body: 'Joyn DE via front-end Q1 2027, sequenza phased non big-bang. AI dubbing rende cash-positive l\'export catalogo IT → DE entro 12 mesi. → Per Infinity: scala progressiva senza rischio merger.',
        thumbs: [
          { src: __a('show-presenters', 'jpg'),x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-1', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-young', 'jpg'),     x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '6,76M', label: 'BENCHMARK POSITIVO · RTL BEDROCK · APR 2026',
        body: 'RTL Bedrock: 6,76M abbonati (2024, target 9M) / 4 mercati EU su stack unico, governance autonoma per mercato. → Per Infinity: federation phased come template industriale già validato.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '⚠', label: 'ANTI-PATTERN · 3 FALLIMENTI',
        body: 'Salto FR €135M bruciati su unification governance; ARD/ZDF Mediathek bloccato LG Köln gen 2025; ACM NL blocca merger RTL/Talpa mar 2023. → Per Infinity: federarsi, non fondersi.',
        thumbs: [
          { src: __a('show-drama', 'jpg'),     x: 0.16, y: 0.30, w: 170, h: 110, rotate: -3, opacity: 0.55, blur: 1 },
          { src: __a('show-couple', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.50, blur: 1 },
          { src: __a('show-female', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.45, blur: 1 },
        ],
      },
    ],
    source: 'Risposta Mara · 18 mag 2026 · LG Köln + OLG Köln · gen 2025 · ACM NL · mar 2023 · RTL Group annual report · apr 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 28 · 3 deal-type concreti · FAST + Operator + Aggregator
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'nearBlack', sectionId: 'b3',
    shortLabel: '31 · 3 deal-type concreti',
    panelColor: 'navy', thumb: __a('show-tv', 'jpg'),
    kicker: 'Approfondimento B3 · Distribution deals · 3 categorie operative',
    storyNum: 9,
    title: '3 DEAL-TYPE CONCRETI,\nNON 2 AZIONI SOVRAPPOSTE',
    subtitle: 'Non teoria di distribuzione: tre forme di deal concrete. FAST aggregation, Set-top operator, Aggregator SVOD — tre cantieri paralleli, ognuno con economics e governance distinte.',
    image: __a('show-tv', 'jpg'),
    imagePos: 'center 30%',
    sections: [
      {
        stat: '01', label: 'FAST AGGREGATION · SAMSUNG TV+ / LG / PLUTO',
        body: 'Pool IT FAST $15,5M 2025 → $21,8M 2030 (OMDIA). Pool piccolo MA carriage = presenza regolatoria CTV. Samsung TV+ IT 128 FAST channel fine 2023. LG Channels UK +57% YoY (100 → 157). Mediaset NON tra owners FAST channel IT — gap da chiudere. La presenza FAST è control point su CTV, non solo revenue.',
        thumbs: [
          { src: __a('show-tv', 'jpg'),        x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '02', label: 'SET-TOP OPERATOR · TIM VISION / SKY Q PRECEDENTI',
        body: 'TIM Vision data partnership in corso, guidata da MFE Adv. Sky × Mediaset 2018: app Infinity di default su Sky Q/Glass dal 2021. Operator deal = data exchange + carriage. Distribuzione via telco/operator come canale di reach con economics distinti dalla FAST: bundled, contractual, multi-year.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-couple', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-male', 'jpg'),      x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '4', suffix: ' deal EU',
        label: 'AGGREGATOR SVOD · 4 EU IN 90 GIORNI 2025',
        body: 'Netflix×TF1 (giu 2025), Amazon×France.tv (lug), Disney×ITVX (lug), Disney×ZDF (ago). Atresmedia×Disney storico. 4 partnership EU Q3 2025 documentate. Mediaset fuori dal trend. Il pattern: i broadcaster EU stanno firmando deal di aggregation con gli SVOD globali — chi non firma, perde reach.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('show-drama', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'OMDIA Apr 2026 · Statista 1465766 · press EU partnership Q3 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 29 · Sport non è fuori scope · mix (Premium + Editorial + Social)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleBlue', sectionId: 'b3',
    shortLabel: '32 · Sport · mix realistico',
    panelColor: 'indigo', thumb: __a('show-male', 'jpg'),
    kicker: 'Approfondimento B3 · Sport scope · 3 tracce + emerging low-cost',
    storyNum: 10,
    title: 'SPORT NON È FUORI SCOPE.\nÈ UN MIX.',
    subtitle: 'Mix realistico: un anchor firmato (ATP Finals 2026-2028), tre tracce ancora in costruzione (editorial Bleacher-style, sport-social YouTube/TikTok, emerging low-cost women+padel).',
    image: __a('show-male', 'jpg'),
    imagePos: 'center 25%',
    sections: [
      {
        stat: 'ATP', suffix: ' 2026-28',
        label: 'PREMIUM OPPORTUNISTICO · ATP FINALS 2026-2028',
        body: 'Signed febbraio 2026. Triennale + opzione 2 anni fino 2030. 1 partita/giorno + finale in chiaro su Mediaset. Pivot sport in chiaro post esclusione Champions (Sky+Amazon esclusiva 2027-31). Premium ma sostenibile (~€4M/anno).',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '$175M', label: 'EDITORIAL MEDIASET SPORT · STILE BLEACHER REPORT',
        body: 'Turner $175M acq. 2012 + $100M follow-on, revenue triplicato, profittevole, 500M+ monthly social engagement, #1 mobile sport app under 34 USA — zero rights live. Applicabile a SportMediaset: editorial + creator network IT + TikTok-native.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-presenters', 'jpg'),x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '$14B', label: 'SPORT-SOCIAL · YOUTUBE + TIKTOK FIRST-CLASS',
        body: 'YouTube × NFL Sunday Ticket $14B/7 anni + Shorts highlights CTV. TikTok × UEFA ~55M follower @championsleague. Overtime Elite $500M valuation Gen Z. Mediaset first-class su TikTok (42% audience IT) + Instagram (69%).',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.16, y: 0.30, w: 170, h: 110, rotate: -3, opacity: 0.85 },
          { src: __a('show-dance', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-male', 'jpg'),      x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '+50%', label: 'EMERGING LOW-COST · WOMEN + PADEL + ESPORT',
        body: 'Padel growth >50%/anno IT. Serie A Femminile DAZN 90 match/season €5-10M/anno. Pacchetto 2026-2028 cumulato €15-30M/anno — 40× meno che Serie A. Decisione difensiva (relevance under-30) più che growth lever.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-couple', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-drama', 'jpg'),     x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    decisionCard: {
      domanda: 'Oltre ATP: editorial sport Bleacher-style, sport-social YouTube/TikTok, emerging low-cost (women+padel) — su quali tracce investiamo?',
      raccomandazione: 'Emerging low-cost (women + padel) sì come anchor economici: Serie A Femminile DAZN €5-10M/anno, pacchetto 2026-2028 cumulato €15-30M/anno (40× meno che Serie A). Editorial Bleacher-style: benchmark Turner $175M → revenue triplicato + profittevole + #1 mobile sport app under 34 USA con zero rights live.',
      rischio: 'I diritti sport premium esplodono di costo (esclusione Champions 2027-31 Sky+Amazon esclusiva): il valore è nel mix anchor opportunistico + low-cost emergenti + editorial/social, non nell\'inseguire i grandi diritti.',
    },
    source: 'S&P Global apr 2026 · OMDIA Apr 2026 · Sportico/Turner 2025 · ATP Finals signed feb 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 30 · TAKE-AWAY B3 · Distribution & Scale
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'navy', sectionId: 'b3',
    shortLabel: '33 · Take-away B3 · Distribution',
    panelColor: 'navy',
    kicker: 'Chiusura Bucket 3 · Take-away',
    statement: '3 leve regolatorie convergenti.\nSingle OTT già scritto. AI dubbing pronto.\nAsset OEM-deal non attivato.',
    body: 'TF1+ ha consegnato il 70% di questo bucket in 18 mesi. Mediaset ha il vantaggio strutturale del perimetro MFE pan-EU che TF1 non ha. Sport non è fuori scope: ATP signed, mix editorial + sport-social in costruzione. La mossa è esecuzione, non strategia.',
    bridgeLine: '→ Owned First, Embassy, CTV rail, Identity Layer: distribuzione di IN.',
    donutPair: {
      todayLabel: 'REACH OGGI',
      targetLabel: 'REACH 2030',
      todayTotal: 'mix',
      targetTotal: 'mix',
      segments: [
        { label: 'Owned (Infinity IT+ES · Joyn DE)', color: '#22D3EE', today: 70, target: 55 },
        { label: 'YouTube Embassy',                   color: '#06B6D4', today: 13, target: 20 },
        { label: 'CTV partner / OEM',                 color: '#A0B4FF', today: 8,  target: 15 },
        { label: 'FAST + social + altro',             color: '#F7A1DC', today: 9,  target: 10 },
      ],
    },
    source: 'TF1 FY 2025 · 12 feb 2026 · Nielsen Gauge CTV · MFE Annual Report 2024 · ATP Finals signed feb 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 20 · BUCKET 4 INTRO · Monetization
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Globe', scheme: 'magenta', sectionId: 'b4',
    shortLabel: '34 · B4 · Monetization',
    thumb: __a('show-female', 'jpg'), panelColor: 'pink',
    bucket: 'BUCKET 04',
    storyNum: 4,
    title: 'MONETIZATION,\nDATA & ADVERTISING',
    subtitle: 'AdManager è già live da 18 mesi. La domanda al management non è "lanciamo" — è "scaliamo". MFE Total Video · Shoppable · Distributed Monetization · Audience Intelligence AI.',
    source: 'Bucket 4 · 4 azioni · 13 evidenze + 5 INTERNAL primary',
    thumbs: [
      { src: __a('show-female', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-young', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-couple', 'jpg'),     w: 130, h: 180 },
      { src: __a('presenter-1', 'jpg'),     w: 130, h: 180 },
      { src: __a('show-drama', 'jpg'),      w: 130, h: 180 },
      { src: __a('show-tv', 'jpg'),         w: 130, h: 180 },
      { src: __a('show-dance', 'jpg'),      w: 130, h: 180 },
    ],
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 21 · ADMANAGER · LongScroll (4 deep-dive sections)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'magenta', sectionId: 'b4',
    shortLabel: '35 · AdManager Self-Service',
    panelColor: 'pink', thumb: __a('show-female', 'jpg'),
    kicker: 'Azione 13 · Bucket Monetization & Data',
    storyNum: 13,
    title: 'LA MACCHINA PAN-MFE\nÈ GIÀ IN MOTO',
    subtitle: 'AdManager live IT da set 2024. ES+DE estate 2026. Scaliamo, non lanciamo.',
    image: __a('show-female', 'jpg'),
    imagePos: 'center 30%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 13 · BUCKET 4',
      numbers: [
        { value: '1.000+',  tag: 'PMI LIVE',    label: 'Attive IT (mar 2026) · target 5.000 · ES+DE estate 2026' },
        { value: '$224M',   tag: '#1 AVOD IT',  label: '4× RaiPlay · 8× Netflix Italy ad-tier · OMDIA apr 2026' },
        { value: '12-18',   tag: 'MESI WINDOW', label: 'Anticipo su Netflix SMB · NBCU Peacock +30% net-new conferma' },
        { value: '3 silos', tag: 'CONSOLIDATE', label: 'AdManager × Mediamond × Digitalia · commercial layer unico' },
      ],
      senseLine: '"Shopify of ads EU": vendiamo mentre i competitor costruiscono.',
    },
    sections: [
      {
        stat: '1.000', suffix: '+',
        label: 'PMI ATTIVE · MAR 2026 · SCALIAMO O CONSOLIDIAMO?',
        body: 'TESI · 1.000+ PMI attive IT 2026, espansione ES+DE estate 2026. Asset più strategico di MFE come ad-tech leader EU. Decidere se è prodotto core o side-project.   DOMANDA · Scaliamo o consolidiamo?   ✓ RACCOMANDAZIONE A · Scale aggressivo: target 5.000 PMI attive IT + 2.000 ES/DE entro fine 2026. NBCU Peacock SMB +30% net-new 2025, finestra di mercato 12-18 mesi.   ⚠ RISCHIO · se AdManager non diventa il "Shopify of ads EU" in 18 mesi, qualcuno lo costruisce per noi (Magnite ClearLine già si muove).',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.24, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('show-drama', 'jpg'),     x: 0.10, y: 0.66, w: 150, h: 95,  rotate: 4,  opacity: 0.75 },
          { src: __a('content-collage', 'jpg'),x: 0.86, y: 0.30, w: 180, h: 115, rotate: 5,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.88, y: 0.68, w: 160, h: 100, rotate: -3, opacity: 0.75 },
        ],
      },
      {
        stat: 'API', label: 'OPEN API O CLOSED SYSTEM?',
        body: 'TESI · Ogni canale di acquisto extra = revenue marginale. TUSMA inventory limitata (12 min/h), scarsità da monetizzare.   DOMANDA · Open API o closed system?   ✓ RACCOMANDAZIONE A · Open API → vendor (agenzie SMB, software gestionali) possono integrare ad-buying. Ogni canale di acquisto extra = revenue marginale senza marginal cost di sales.   ⚠ RISCHIO · closed system = single-channel monetization, plateau revenue.',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.18, y: 0.32, w: 160, h: 100, rotate: -4, opacity: 0.82 },
          { src: __a('presenter-2', 'jpg'),    x: 0.82, y: 0.32, w: 160, h: 100, rotate: 4,  opacity: 0.78 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.74, w: 170, h: 110, rotate: -3, opacity: 0.75 },
        ],
      },
      {
        stat: '3', suffix: ' silos',
        label: 'UNIFICARE CRM/SALES CROSS-SILO?',
        body: 'TESI · AdManager × Mediamond × Digitalia = 3 sales force che parlano alla stessa agenzia. Inefficiency strutturale.   DOMANDA · Unificare CRM e sales cross-silo?   ✓ RACCOMANDAZIONE A · Roadmap unificazione 18-24 mesi · commercial layer unico, no platform merger. ITV ha già fatto pivot 2022-24 (-200 linear / +200 digital roles).   ⚠ RISCHIO · reorg dolorosa ma necessaria. Aspettare = peggiorare.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.30, w: 220, h: 140, rotate: -2, opacity: 0.82 },
          { src: __a('show-male', 'jpg'),      x: 0.15, y: 0.72, w: 150, h: 95,  rotate: 4,  opacity: 0.7 },
          { src: __a('show-female', 'jpg'),    x: 0.85, y: 0.72, w: 150, h: 95,  rotate: -3, opacity: 0.7 },
        ],
      },
      {
        stat: '12-18', suffix: ' mesi',
        label: 'ANTICIPO SU NETFLIX SUL TICKET PMI',
        body: 'TESI · La SMB-tier che Netflix sta ancora costruendo è già in production da noi. First-mover advantage EU.   IL VANTAGGIO · MFE AdManager 1.000+ PMI live · Netflix SMB tier annunciato non live · finestra 12-18 mesi. Vendiamo mentre loro costruiscono.   ⚠ RISCHIO · finestra di mercato si chiude. NBCU/Magnite stanno arrivando.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.16, y: 0.28, w: 160, h: 100, rotate: -5, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.86, y: 0.28, w: 160, h: 100, rotate: 5,  opacity: 0.8 },
          { src: __a('show-couple', 'jpg'),    x: 0.50, y: 0.74, w: 180, h: 115, rotate: 0,  opacity: 0.82 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: 'Cosa è già in moto', thumb: __a('show-couple', 'jpg'),imagePos: 'center 25%', slideIdx: 43 },
      { shortLabel: '16 azioni. Una sola app.', thumb: __a('content-collage', 'jpg'), imagePos: 'center', slideIdx: 44 },
      { shortLabel: 'Introducing IN', thumb: __a('infinity-logo', 'png'), imagePos: 'center', slideIdx: 45 },
    ],
    source: 'Brand-News · mar 2026 · Primaonline · 30 set 2024 · Engage · set 2024',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 22 · Shoppable + Distributed Monetization · 71% growth FAST EU
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'nearBlack', sectionId: 'b4',
    shortLabel: '36 · Shoppable + Distributed',
    panelColor: 'pink', thumb: __a('show-dance', 'jpg'),
    kicker: 'Azione 14 · Bucket Monetization & Data',
    storyNum: 14,
    title: 'SHOPPABLE LEAD-GEN +\nFAST OEM-DRIVEN',
    subtitle: 'Lo schermo non vende solo attenzione: genera domanda misurabile.',
    image: __a('show-dance', 'jpg'),
    imagePos: 'center 25%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 14 · BUCKET 4',
      numbers: [
        { value: '€630M', tag: 'FAST EU',     label: '+33% YoY · 71% growth guidato dagli OEM (Samsung+LG)' },
        { value: '<2%',   tag: 'DROP-OFF',    label: 'In-stream conversion USA 2019-23 · lead-gen, non transaction' },
        { value: '3',     tag: 'CANTIERI',    label: 'OEM (Samsung TV+/LG) · aggregator · TLC pan-MFE' },
        { value: 'Mini',  tag: 'CTR ↑',       label: 'FreeWheel + Mini high-intent live · CTR/completion sopra media' },
      ],
      senseLine: 'Monetizzazione oltre l\'in-stream + carriage CTV: domanda misurabile, non solo attenzione.',
    },
    sections: [
      {
        stat: '01', label: 'SHOPPABLE · LEAD-GEN, NON TRANSACTION',
        body: 'Shoppable come lead-gen, non transaction: FreeWheel + Mini high-intent live su AdManager, CTR/completion sopra media. → Per Infinity: domanda misurabile, non solo attenzione.',
        thumbs: [
          { src: __a('show-dance', 'jpg'),     x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-female', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '<2%', label: 'USA 2019-2023 · DROP-OFF MOBILE',
        body: 'NBCU/Hulu/Roku 2019-2023: in-stream conversion <2%. → Per Infinity: lead-gen priorità, transaction capability secondaria — non inseguire l\'acquisto in-stream.',
        thumbs: [
          { src: __a('show-young', 'jpg'),     x: 0.16, y: 0.30, w: 170, h: 110, rotate: -4, opacity: 0.82 },
          { src: __a('presenter-1', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '+33%', label: 'FAST EU · €630M · +33% YoY',
        body: 'FAST EU €630M +33% YoY, 71% guidato dagli OEM (Samsung+LG): 3 cantieri (OEM, aggregator, TLC pan-MFE). → Per Infinity: monetizzazione oltre l\'in-stream + carriage CTV.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '3', suffix: ' cantieri',
        label: 'DISTRIBUTED · 3 CANTIERI MFE',
        body: 'Samsung TV Plus + LG Channels · Prime/Apple TV/set-top · TIM IT, Movistar ES, Deutsche Telekom DE.',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-drama', 'jpg'),     x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'FreeWheel + Mini · 2025 · Industry case histories USA 2019-2023 · Comscore + Nielsen · dic 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 23 · Audience Intelligence + AI Layer · 77% + 36%
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleDeep', sectionId: 'b4',
    shortLabel: '37 · Audience Intelligence',
    panelColor: 'purpleMid', thumb: __a('content-collage', 'jpg'),
    kicker: 'Azione 15 · Bucket Monetization & Data',
    storyNum: 15,
    title: 'LA CDP È UNICA,\nIL BLOCKER È L\'ATTIVAZIONE',
    subtitle: 'CDP Mediaset già unica. Il blocker non è la data, è l\'attivazione cross-channel.',
    image: __a('content-collage', 'jpg'),
    imagePos: 'center',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 15 · BUCKET 4',
      numbers: [
        { value: 'Unica',  tag: 'CDP MFE',     label: 'Già esiste · il blocker è l\'attivazione cross-channel tra silos' },
        { value: '+36%',   tag: 'P7 AVOD',     label: 'YoY consolidando · ProSieben prova che l\'attivazione paga' },
        { value: '-$5,6B', tag: 'XANDR+OATH',  label: 'Anti-pattern · clean-room/federation legale, non unified CDP' },
        { value: '×2',     tag: 'GARANTE IT',  label: 'Sanzioni 24 mesi · CNIL Criteo €40M · compliance-by-design' },
      ],
      senseLine: 'Ogni euro adv vale di più sbloccando l\'attivazione, senza il rischio sanzioni.',
    },
    sections: [
      {
        stat: '01', label: 'CDP MEDIASET · GIÀ UNICA',
        body: 'La CDP Mediaset è già unica: il blocker non è la data ma l\'attivazione cross-channel tra i silos Publitalia/Mediamond/Digitalia/RTI. → Per Infinity: ogni euro adv vale di più sbloccando l\'attivazione.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('show-presenters', 'jpg'),x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('presenter-1', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '⚠', label: 'CAVEAT REGOLATORIO · 3 LEZIONI',
        body: 'Caveat regolatorio (Xandr -$600M, Oath -$4,6B, Garante IT ×2): clean-room/federation legale, non unified CDP. → Per Infinity: attivare senza rischio sanzioni.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.30, w: 170, h: 110, rotate: -3, opacity: 0.55, blur: 1 },
          { src: __a('show-female', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.50, blur: 1 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.45, blur: 1 },
        ],
      },
      {
        stat: '+36%', label: 'CASO POSITIVO · PROSIEBEN SOTTO GIORDANI',
        body: 'Caso positivo ProSieben: +36% AVOD YoY consolidando i silos. → Per Infinity: prova che l\'attivazione paga, non solo ipotesi teorica.',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.30, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('show-tv', 'jpg'),        x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '3', suffix: ' deals',
        label: 'ADV MANDATE CROSS-MFE · 3 DEALS',
        body: 'ADV mandate deals MFE mantengono autonomia dalle negoziazioni content (lesson Disney 2025). 3 opportunità: Disney · WBD / HBO Max · DAZN.',
        thumbs: [
          { src: __a('show-drama', 'jpg'),     x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    source: 'ProSieben · 2024-25 · Digiday · dic 2021 · CNBC + Bloomberg · dic 2018 · Garante Privacy IT · 2024',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 34 · ADV mandate cross-MFE · 3 deals (Disney / WBD / DAZN)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'magenta', sectionId: 'b4',
    shortLabel: '38 · ADV mandate cross-MFE',
    panelColor: 'pink', thumb: __a('show-couple', 'jpg'),
    kicker: 'Azione 16 · Bucket Monetization & Data',
    storyNum: 16,
    title: 'ADV MANDATE\nCROSS-MFE',
    subtitle: 'Vendere l\'inventory altrui sulla nostra macchina adv. Tre deal, tre decisioni oggi.',
    image: __a('show-couple', 'jpg'),
    imagePos: 'center 25%',
    statSlide: {
      kickerOverride: 'I NUMERI · AZIONE 16 · BUCKET 4',
      numbers: [
        { value: '41%',    tag: 'DISNEY+',     label: 'Ad-tier IT · inventory limitata · MFE reach extension + brand safety' },
        { value: 'IT 26',  tag: 'HBO MAX',     label: 'Lancio IT 2026 · concessionaria pubblicitaria locale MFE' },
        { value: '$30,72', tag: 'DAZN ARPU',   label: 'Clean-room federation · data activation cross-vendor sport/entertainment' },
        { value: '⚠',      tag: 'LESSON DIS.', label: 'Mandato adv separato dal content (lesson 2025) · governance distinte' },
      ],
      senseLine: 'Revenue + signal sull\'audience premium · autonomia commerciale anche con rapporto content teso.',
    },
    sections: [
      {
        stat: '01', label: 'MANDATE ADV SEPARATO DA CONTENT',
        body: 'Lesson Disney 2025: le negoziazioni content possono saltare per ragioni che non hanno nulla a che vedere con l\'advertising. Un mandato ADV cross-MFE mantiene autonomia commerciale anche quando il rapporto content è teso. Layer separato, governance separata.',
        thumbs: [
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.28, w: 180, h: 115, rotate: -5, opacity: 0.88 },
          { src: __a('content-collage', 'jpg'),x: 0.84, y: 0.30, w: 180, h: 115, rotate: 4,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 190, h: 120, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '41%', label: 'DEAL 1 · DISNEY · REACH + PREMIUM',
        body: 'Disney+ ad-tier 41% degli abbonati IT, ma inventory limitata. MFE come partner di reach extension + brand-safety EU su catalogo Disney. Premium adv su contesto editoriale controllato.',
        thumbs: [
          { src: __a('show-drama', 'jpg'),     x: 0.16, y: 0.30, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-female', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: 'IT', suffix: ' 2026',
        label: 'DEAL 2 · WBD / HBO MAX · INVENTORY EXTENSION',
        body: 'HBO Max lancio IT 2026 in attesa. Inventory adv da gestire fuori dal perimetro Warner senza struttura concessionaria locale. MFE concessionaria pubblicitaria per il mercato italiano.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.30, w: 170, h: 110, rotate: -3, opacity: 0.85 },
          { src: __a('show-tv', 'jpg'),        x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.76, w: 180, h: 115, rotate: 0,  opacity: 0.78 },
        ],
      },
      {
        stat: '$30,72', suffix: '/mese',
        label: 'DEAL 3 · DAZN · DATA ACTIVATION',
        body: 'DAZN Italia ARPU $30,72/mese, ma data activation cross-channel limitata. MFE come layer di attivazione audience cross-vendor (DAZN sport + Mediaset entertainment) via clean-room federation.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.16, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('presenter-1', 'jpg'),    x: 0.84, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.80 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.76, w: 200, h: 130, rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    decisionCards: [
      {
        tag: 'Deal A · Disney',
        domanda: 'Mandato adv su inventory Disney IT: sì/no e a quali termini?',
        raccomandazione: 'MFE come partner di reach extension + brand-safety EU su catalogo Disney. Disney+ ad-tier 41% degli abbonati IT, inventory limitata: il valore è reach extension fuori app, non revenue interno.',
        rischio: 'Senza mandato, l\'inventory Disney IT viene venduta da concessionarie estere o direct: MFE perde sia revenue che signal sulla audience premium.',
      },
      {
        tag: 'Deal B · WBD/HBO Max',
        domanda: 'MFE concessionaria pubblicitaria HBO Max IT al lancio 2026: sì/no?',
        raccomandazione: 'HBO Max lancio IT 2026 in attesa. Inventory adv da gestire fuori dal perimetro Warner senza struttura concessionaria locale. MFE concessionaria pubblicitaria per il mercato italiano = posizione naturale.',
        rischio: 'Senza accordo prima del lancio, Warner appalta a terzi (Mediamond competitor o piattaforma programmatica) e MFE viene tagliata fuori da inventory premium IT.',
      },
      {
        tag: 'Deal C · DAZN',
        domanda: 'Clean-room federation MFE × DAZN per data activation cross-vendor: sì/no?',
        raccomandazione: 'DAZN Italia ARPU $30,72/mese, data activation cross-channel limitata. MFE come layer di attivazione audience cross-vendor (DAZN sport + Mediaset entertainment) via clean-room federation legale.',
        rischio: 'Senza clean-room federation, i segmenti high-value sport (DAZN) e entertainment (MFE) non si parlano: si perde il vantaggio cross-vertical che nessun altro player IT può offrire.',
      },
    ],
    decisionClosing: 'Il management esce dalla room con 3 scelte fatte. Restare fermi = i tre player trovano un altro venditore adv in Italia e il vantaggio MFE evapora.',
    source: 'ProSieben Annual Report 2024-25 · Disney IR Q4 2025 · WBD press IT 2026 · DAZN Italia data 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 35 · TAKE-AWAY B4 · Monetization
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'magenta', sectionId: 'b4',
    shortLabel: '39 · Take-away B4 · Il vero payoff',
    panelColor: 'pink',
    kicker: 'Chiusura Bucket 4 · Il vero payoff',
    statement: '#1 AVOD IT $224M.\nDa $234M (2025) a $680M (2030).\nLa precondizione è governance, non build.',
    body: 'Mediaset Infinity è la prima piattaforma AVOD italiana per ricavi. La concessionaria pubblicitaria è una piramide sotto un unico amministratore — Publitalia \'80 → Digitalia \'08 + Mediamond. La CDP è unica. AdManager è live da 18 mesi con 1.000+ PMI attive. TF1 ha consegnato Ad Manager a gennaio 2026 — blueprint pronto. Tutto questo converge in IN.',
    bridgeLine: '→ AdManager, Shoppable, Audience Intelligence, Mandate cross-MFE: monetization layer di IN.',
    donutPair: {
      todayLabel: 'REVENUE 2025',
      targetLabel: 'REVENUE 2030',
      todayTotal: '~$234M',
      targetTotal: '~$680M',
      large: true,
      segments: [
        { label: 'AVOD / CTV ADV',          color: '#F7A1DC', today: 96, target: 63 },
        { label: 'SMB Self-Service',        color: '#D147A3', today: 4,  target: 25 },
        { label: 'Data & Commerce',         color: '#C996FA', today: 0,  target: 12 },
      ],
    },
    source: 'OMDIA Apr 2026 ($224M AVOD 2025) · Deck 20-slide revenue trajectory · MFE Annual Report 2024 · TF1 FY 2025',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 24 · COSA È GIÀ IN MOTO · LongScroll (5 proof points)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'LongScroll', scheme: 'purpleDeep', sectionId: 'close',
    shortLabel: '40 · Cosa è già in moto',
    panelColor: 'purpleMid', thumb: __a('show-couple', 'jpg'),
    kicker: 'Chiusura · 5 proof point operativi · Slide chiave',
    storyNum: 16,
    title: 'LA PIATTAFORMA EUROPEA\nNON È UN PROGETTO.\nÈ IN COSTRUZIONE.',
    subtitle: 'Cinque proof point operativi, oggi, nel gruppo MFE. Scorri per esplorarli uno a uno.',
    image: __a('show-couple', 'jpg'),
    imagePos: 'center 25%',
    numbersStrip: CANONICAL_NUMBERS,
    sections: [
      {
        stat: '1.000', suffix: '+',
        label: 'ADMANAGER · LIVE DA 18 MESI',
        body: 'Settembre 2024 lancio IT. Marzo 2026: 1.000+ PMI attive. Estate 2026: lancio Spagna e Germania sotto framework MFE Advertising. La macchina pan-MFE è già accesa.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.18, y: 0.28, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.82, y: 0.30, w: 170, h: 110, rotate: 4,  opacity: 0.85 },
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.78, w: 200, h: 130, rotate: 0,  opacity: 0.82 },
        ],
      },
      {
        stat: 'IT+ES', suffix: ' live',
        label: 'FEDERATION INFINITY + MITELE',
        body: 'Stack Infinity IT + Infinity ES front-end e back-end condiviso, confermato Mara 18 maggio 2026. Estensione Joyn DE via front-end Q1 2027. Federation phased, eseguibile in 12-18 mesi. Benchmark positivo: RTL Bedrock 6,76M abbonati (2024, target 9M) / 4 mercati EU.',
        thumbs: [
          { src: __a('content-collage', 'jpg'),x: 0.50, y: 0.32, w: 240, h: 150, rotate: -2, opacity: 0.85 },
          { src: __a('show-couple', 'jpg'),    x: 0.16, y: 0.72, w: 160, h: 100, rotate: -3, opacity: 0.78 },
          { src: __a('show-male', 'jpg'),      x: 0.84, y: 0.72, w: 160, h: 100, rotate: 3,  opacity: 0.78 },
        ],
      },
      {
        stat: 'GIU', suffix: ' 2026',
        label: 'VERTICAL COMMISSIONING LIVE',
        body: 'Fascino × Witty TV pilot microdrama "Tutto in una notte" aprile 2026. Mediaset Infinity microdrama/verts giugno 2026. Il pivot non è ipotesi: è calendario. YouTube Shorts 2 mld ore/mese su CTV.',
        thumbs: [
          { src: __a('presenter-1', 'jpg'),    x: 0.18, y: 0.30, w: 150, h: 95,  rotate: -4, opacity: 0.78 },
          { src: __a('show-dance', 'jpg'),     x: 0.82, y: 0.30, w: 160, h: 100, rotate: 4,  opacity: 0.82 },
          { src: __a('show-presenters', 'jpg'),x: 0.50, y: 0.76, w: 170, h: 110, rotate: 0,  opacity: 0.8 },
        ],
      },
      {
        stat: '+128', suffix: '% / +33%',
        label: 'EDITORIAL PROMOTION · PROVATO 2×',
        body: 'Viola Come il Mare 2: +128% viewing-time on-demand (lineare ~in linea), 12,5M ore on-demand. La Talpa: +33% lift Infinity, totale multimediale 3,115M. La prova interna esiste, due volte quantificata.',
        thumbs: [
          { src: __a('show-female', 'jpg'),    x: 0.20, y: 0.28, w: 180, h: 115, rotate: -3, opacity: 0.85 },
          { src: __a('show-young', 'jpg'),     x: 0.80, y: 0.32, w: 170, h: 110, rotate: 4,  opacity: 0.82 },
          { src: __a('show-drama', 'jpg'),     x: 0.15, y: 0.74, w: 160, h: 100, rotate: -3, opacity: 0.78 },
          { src: __a('show-couple', 'jpg'),    x: 0.85, y: 0.74, w: 160, h: 100, rotate: 4,  opacity: 0.78 },
        ],
      },
      {
        stat: 'ATP', suffix: ' 2026-28',
        label: 'SIGNED FEB 2026',
        body: 'Triennale + opzione 2 anni fino 2030. 1 partita/giorno + finale in chiaro su Mediaset. Prima mossa sport editorial post esclusione Champions (Sky + Amazon esclusiva 2027-31). ATP è il pivot sport in chiaro: premium ma sostenibile.',
        thumbs: [
          { src: __a('show-male', 'jpg'),      x: 0.18, y: 0.30, w: 170, h: 110, rotate: -4, opacity: 0.85 },
          { src: __a('show-tv', 'jpg'),        x: 0.82, y: 0.32, w: 180, h: 115, rotate: 4,  opacity: 0.85 },
          { src: __a('presenter-2', 'jpg'),    x: 0.50, y: 0.76, w: 150, h: 95,  rotate: 0,  opacity: 0.78 },
        ],
      },
    ],
    moreStories: [
      { shortLabel: '16 azioni. Una sola app.', thumb: __a('content-collage', 'jpg'), imagePos: 'center', slideIdx: 44 },
      { shortLabel: 'Introducing IN', thumb: __a('infinity-logo', 'png'), imagePos: 'center', slideIdx: 45 },
    ],
    source: 'Proof point da fonti pubbliche · maggio 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 25 · BRIDGE · Pre-reveal IN
  //   Una slide-bridge minimale tra i proof point (slide 37) e il reveal del
  //   dot-cloud (slide 39). Cambia il registro mentale del pubblico da
  //   "stiamo guardando le 16 azioni" a "stiamo per vedere il contenitore".
  //   Solo statement + sottotitolo, niente body/quote/source/killer number —
  //   è la slide più semplice del deck, ed è esattamente per questo che
  //   funziona come setup. La strip dei 5 numeri canonici resta come
  //   tatuaggio sottile in basso (terza ripetizione dopo slide 37 e closing).
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'nearBlack', sectionId: 'close',
    shortLabel: '41 · Bridge → IN',
    panelColor: 'purpleMid',
    bridge: true,
    align: 'center',
    kicker: 'Bridge · Pre-reveal',
    statement: '16 AZIONI.\nUNA SOLA APP.',
    subtitle: 'Tutto quello che hai visto fino a qui vive qui dentro.',
    numbersStrip: CANONICAL_NUMBERS,
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 26 · INTRODUCING IN — Reveal (in-dot-cloud)
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'MorphScroll', scheme: 'nearBlack', sectionId: 'close',
    shortLabel: '42 · Introducing IN',
    panelColor: 'purpleMid',
    iframeSrc: 'in-dot-cloud/index.html?embed=1&color=brand&motion=auto',
    iframeWidth: 540, iframeHeight: 460,
    iframeTop: 130,
    kicker: 'Reveal · Documento interno · maggio 2026',
    title: 'INTRODUCING\nIN.',
    subtitle: 'Un\'unica app europea, AI-native. Tutto il gruppo, in ogni paese, in un solo feed.',
    sections: [
      {
        type: 'bullet', num: '01 · UNA SOLA APP PER TUTTO IL GRUPPO',
        heading: 'UNA SOLA APP\nPER TUTTO IL GRUPPO',
        body: 'Infinity IT, Infinity ES e Joyn DE sotto un unico brand ed engine. Contenuto localizzato paese per paese, esperienza unica end-to-end. Single brand, single engine, multi-mercato.',
        sourceMeta: 'Pillar 01 · pan-EU one-app',
      },
      {
        type: 'bullet', num: '02 · AI-NATIVE, VERTICAL SCROLLING',
        heading: 'AI-NATIVE,\nVERTICAL SCROLLING',
        body: 'Un feed misto — film, news, podcast, creator, web — che ti serve il contenuto invece di farlo cercare. La facilità del social, la qualità del premium TV.',
        sourceMeta: 'Pillar 02 · feed AI-native',
      },
      {
        type: 'bullet', num: '03 · FREE + TIER PREMIUM',
        heading: 'FREE + TIER PREMIUM',
        body: 'L\'ad-supported porta reach di massa, finanziato dalla macchina adv MFE. I contenuti premium ed esclusivi del gruppo vivono dietro l\'abbonamento. Doppio motore di monetizzazione.',
        sourceMeta: 'Pillar 03 · modello di business',
      },
      {
        type: 'bullet', num: '04 · IL NEWS LAYER PAN-EUROPEO',
        heading: 'IL NEWS LAYER\nPAN-EUROPEO',
        body: 'Le news di tutto il gruppo, in ogni paese, aggregate in un unico posto. TGcom IT, Infinity ES News, P7 Newstime DE: prospettiva europea continua, non frammenti nazionali.',
        sourceMeta: 'Pillar 04 · news aggregation EU',
      },
      {
        type: 'bullet', num: '05 · NON GUARDI SOLTANTO: INTERAGISCI',
        heading: 'NON GUARDI SOLTANTO:\nINTERAGISCI',
        body: 'Interazione agentica con modelli e contenuti — architettura MCP evolutiva, con dati dinamici dietro al feed. Dall\'utente passivo all\'utente che chiede, riformula, approfondisce.',
        sourceMeta: 'Pillar 05 · agentic UX',
      },
      {
        type: 'bullet', num: '06 · IL VOLANO AD → TECH',
        heading: 'IL VOLANO\nAD → TECH',
        body: 'Più potere contrattuale sui brand e più capacità di chiudere deal di Perplexity. La pubblicità raccoglie budget, il budget finanzia l\'evoluzione del prodotto → evolviamo più in fretta.',
        sourceMeta: 'Pillar 06 · vantaggio economico vs Perplexity',
      },
      {
        type: 'bullet', num: '07 · IL MOAT DI CONTENUTO',
        heading: 'IL MOAT\nDI CONTENUTO',
        body: 'Una libreria TV europea proprietaria, premium ed esclusiva, che Perplexity (solo web pubblico indicizzabile) non può replicare. Vantaggio difensivo non copiabile, costruito in 40+ anni.',
        sourceMeta: 'Pillar 07 · vantaggio di contenuto vs Perplexity',
      },
      {
        type: 'bullet', num: '08 · LA RISPOSTA EUROPEA',
        heading: 'LA RISPOSTA EUROPEA,\nNON UN ALTRO AGGREGATORE',
        body: 'Il primo super-feed AI-native dei broadcaster EU, costruito per la rilevanza del mercato europeo. Non un clone di prodotti USA, ma un\'architettura nata europea.',
        sourceMeta: 'Pillar 08 · posizionamento strategico',
      },
      {
        type: 'bullet', num: '→ CHIUSURA',
        heading: 'SUPERIAMO PERPLEXITY\nSU PRODOTTO E RILEVANZA EU.',
        body: 'Vantaggio economico (più budget → più velocità) + vantaggio di contenuto (premium + esclusività europea) = il primo competitor europeo della next-gen AI-native consumer media platform.',
        sourceMeta: 'IN · Q3 2026 · IT + ES + DE',
      },
    ],
    source: 'IN · Coming Q3 2026 · IT · ES · DE · Fase 1 → Fase 3',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 27 · CLOSING · IN · The deck in 5 numbers
  //   Hero grid dei 5 numeri canonici · dot-cloud IN piccolo come watermark
  //   in alto a destra · closing line "Non un piano. Un prodotto." sotto.
  //   Le fasi 1/2/3 vivono in appendice (slide 41).
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Claim', scheme: 'purpleDeep', sectionId: 'close',
    shortLabel: '43 · Closing · IN in 5 numeri',
    panelColor: 'purpleMid',
    kicker: 'IN · Closing · I 5 numeri canonici',
    statement: 'IN.\nIN 5 NUMERI.',
    cornerIframe: {
      src: 'in-dot-cloud/index.html?embed=1&color=brand&motion=auto',
      top: 70, right: 60, width: 360, height: 280, opacity: 0.78,
    },
    numberGrid: CANONICAL_NUMBERS_LONG,
    closingLine: 'Non un piano. Un prodotto. Coming Q3 2026.',
    source: 'Statista GCS · OMDIA · MFE Annual Report · AGCOM SIG · maggio 2026',
  },

  // ═════════════════════════════════════════════════════════════════════════
  // 28 · APPENDICE · I PILLAR FUNZIONALI E IL ROLLOUT (4 pillar + 3 fasi)
  //   Spostato dalla closing al post-closing: il dettaglio di esecuzione che
  //   serve a chi vuole leggerlo dopo, non al pubblico in sala. La pillar
  //   row in alto spiega che cosa è IN come prodotto; le 3 card in basso
  //   spiegano quando rolla in IT, ES, DE.
  // ═════════════════════════════════════════════════════════════════════════
  {
    template: 'Morph', scheme: 'purpleDeep', sectionId: 'close',
    shortLabel: '44 · Appendice · IN pillars + roadmap',
    panelColor: 'purpleMid',
    iframeSrc: 'infinity-dot-cloud/index.html?embed=1&color=brand&motion=auto',
    iframeWidth: 1100, iframeHeight: 200,
    iframeTop: 110,
    kicker: 'IN · Feature pillar + rollout · Appendix',
    title: 'I PILLAR FUNZIONALI\nE IL ROLLOUT',
    bottomCard: (
      <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>
        {/* Pillar row — 4 mini-pillars che spiegano cosa è IN come prodotto */}
        <div style={{
          display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 12,
        }}>
          {[
            { tag: 'PILLAR 01', t: 'Feed AI-native',           p: 'Infinity Flow + AI editor — vertical & long-form in un\'unica scroll continua.' },
            { tag: 'PILLAR 02', t: 'AI dubbing real-time',     p: 'IT → ES → DE giorno uno. Catalogo MFE pan-EU senza windowing artificiale.' },
            { tag: 'PILLAR 03', t: 'Layout personalizzato',    p: 'L\'app cambia forma per utente, per device, per momento del giorno.' },
            { tag: 'PILLAR 04', t: 'Pan-EU one-app',           p: 'Single brand, single engine, contenuto localizzato. ~14-15M MAU sotto una sola esperienza.' },
          ].map((pl, i) => (
            <div key={i} style={{
              padding: '14px 16px', borderRadius: 12,
              background: 'rgba(201,150,250,0.08)',
              border: '1px solid rgba(201,150,250,0.30)',
            }}>
              <div style={{ fontFamily: Tokens.fontMono, fontSize: 10, color: '#C996FA', letterSpacing: '0.22em', fontWeight: 700, marginBottom: 6 }}>{pl.tag}</div>
              <div style={{ fontFamily: Tokens.fontDisplay, fontSize: 15, fontWeight: 800, color: '#fff', marginBottom: 4, letterSpacing: '-0.01em', lineHeight: 1.15 }}>{pl.t}</div>
              <div style={{ fontSize: 11.5, color: Tokens.inkDim, lineHeight: 1.4 }}>{pl.p}</div>
            </div>
          ))}
        </div>

        {/* Phase grid — 3 card di rollout */}
        <div style={{
          display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 14,
        }}>
        <div style={{
          padding: '20px 22px', borderRadius: 14,
          background: 'rgba(16,185,129,0.10)',
          border: '1px solid rgba(16,185,129,0.40)',
        }}>
          <div style={{ fontFamily: Tokens.fontMono, fontSize: 11, color: '#3DFFA0', letterSpacing: '0.18em', fontWeight: 700, marginBottom: 8 }}>FASE 1 · 2026 H2</div>
          <div style={{ fontFamily: Tokens.fontDisplay, fontSize: 18, fontWeight: 800, color: '#fff', marginBottom: 6, letterSpacing: '-0.01em' }}>IT + ES</div>
          <div style={{ fontSize: 12.5, color: Tokens.inkDim, lineHeight: 1.45 }}>Federation IT+ES già operativa. IN come layer sopra. SSO, recommendation portability.</div>
        </div>
        <div style={{
          padding: '20px 22px', borderRadius: 14,
          background: 'rgba(247,147,26,0.10)',
          border: '1px solid rgba(247,147,26,0.40)',
        }}>
          <div style={{ fontFamily: Tokens.fontMono, fontSize: 11, color: '#F7931A', letterSpacing: '0.18em', fontWeight: 700, marginBottom: 8 }}>FASE 2 · 2027 H1</div>
          <div style={{ fontFamily: Tokens.fontDisplay, fontSize: 18, fontWeight: 800, color: '#fff', marginBottom: 6, letterSpacing: '-0.01em' }}>+ Joyn DE</div>
          <div style={{ fontSize: 12.5, color: Tokens.inkDim, lineHeight: 1.45 }}>Estensione DE via front-end. AI layer trasversale. Wallet portability cross-3-paesi.</div>
        </div>
        <div style={{
          padding: '20px 22px', borderRadius: 14,
          background: 'rgba(201,150,250,0.12)',
          border: '1px solid rgba(201,150,250,0.45)',
        }}>
          <div style={{ fontFamily: Tokens.fontMono, fontSize: 11, color: '#C996FA', letterSpacing: '0.18em', fontWeight: 700, marginBottom: 8 }}>FASE 3 · 2027 H2</div>
          <div style={{ fontFamily: Tokens.fontDisplay, fontSize: 18, fontWeight: 800, color: '#fff', marginBottom: 6, letterSpacing: '-0.01em' }}>+ Impresa PT, TV2 HU</div>
          <div style={{ fontSize: 12.5, color: Tokens.inkDim, lineHeight: 1.45 }}>Partnership EU si aggregano. Performance Room cross-mercato. Federation 5+ paesi.</div>
        </div>
        </div>
      </div>
    ),
    footerMeta: ['SSO cross-MFE', 'Recommendation', 'Wallet', 'AI layer', 'Performance Room'],
  },

];

const SECTIONS = [
  { id: 'open',   label: 'Apertura',           color: '#C996FA' },
  { id: 'shifts', label: '7 Shifts',           color: '#B975F9' },
  { id: 'b1',     label: 'B01 · Content',      color: '#8F48D2' },
  { id: 'b2',     label: 'B02 · Discovery',    color: '#6366F1' },
  { id: 'b3',     label: 'B03 · Distribution', color: '#06B6D4' },
  { id: 'b4',     label: 'B04 · Monetization', color: '#E0A8E8' },
  { id: 'close', label: 'Chiusura · IN',      color: '#F3C02F' },
];

// ── App shell ──────────────────────────────────────────────────────────────

function App() {
  const [currentIdx, setCurrentIdx] = React.useState(() => {
    const hash = location.hash.replace('#', '');
    const n = parseInt(hash, 10);
    return isFinite(n) && n >= 1 && n <= SLIDES.length ? n - 1 : 0;
  });
  // subStep 0 = main template, 1 = stat-explainer sub-slide. Sub-step is
  // local to a slide that declares `statSlide`. Always resets to 0 on slide
  // change (except when arriving via ← from a slide whose previous neighbour
  // has a statSlide — see onArrowLeft below).
  const [subStep, setSubStep] = React.useState(0);
  const [menuOpen, setMenuOpen] = React.useState(false);
  // Stepper registered by scrollable templates (MorphScroll / LongScroll) to
  // intercept ↓/↑ and snap one section at a time instead of free-scrolling.
  const stepperRef = React.useRef(null);
  // When the user scrolls through the MorphScroll cover, the active bucket
  // section reports its bucketId here so the bottom StoryCarousel can
  // retarget to that bucket's slides. null = use the current slide's own
  // sectionId (hero / no override).
  const [carouselSectionOverride, setCarouselSectionOverride] = React.useState(null);

  const slide = SLIDES[currentIdx];
  const scheme = SCHEMES[slide.scheme] || SCHEMES.purpleDeep;
  const hasStatSlide = !!slide.statSlide;
  const onStat = subStep === 1 && hasStatSlide;
  // Effective section for the carousel = MorphScroll override if active,
  // else the current slide's own sectionId.
  const effectiveSectionId = carouselSectionOverride || slide.sectionId;
  const section = SECTIONS.find(s => s.id === effectiveSectionId);

  React.useEffect(() => {
    history.replaceState(null, '', `#${currentIdx + 1}`);
    const subTag = onStat ? ' · numeri' : '';
    document.title = `${String(currentIdx + 1).padStart(2, '0')} · ${slide.shortLabel || slide.title}${subTag}`;
    const root = document.getElementById('root');
    if (root) root.setAttribute('data-screen-label', `${String(currentIdx + 1).padStart(2, '0')} ${slide.shortLabel || slide.title}${subTag}`);
    // Clear any scroll-driven section override when switching slides.
    setCarouselSectionOverride(null);
  }, [currentIdx, slide, onStat]);

  React.useEffect(() => {
    const onKey = (e) => {
      if (menuOpen) { if (e.key === 'Escape') setMenuOpen(false); return; }
      if (e.key === 'ArrowRight' || e.key === ' ') {
        e.preventDefault();
        if (subStep === 0 && hasStatSlide) {
          setSubStep(1);
        } else if (currentIdx < SLIDES.length - 1) {
          setCurrentIdx(currentIdx + 1);
          setSubStep(0);
        }
      }
      else if (e.key === 'ArrowLeft') {
        e.preventDefault();
        if (subStep === 1) {
          setSubStep(0);
        } else if (currentIdx > 0) {
          const prev = SLIDES[currentIdx - 1];
          setCurrentIdx(currentIdx - 1);
          setSubStep(prev.statSlide ? 1 : 0);
        }
      }
      else if (e.key === 'ArrowDown') {
        if (stepperRef.current && stepperRef.current.down) {
          const consumed = stepperRef.current.down();
          if (consumed) e.preventDefault();
        }
      }
      else if (e.key === 'ArrowUp') {
        if (stepperRef.current && stepperRef.current.up) {
          const consumed = stepperRef.current.up();
          if (consumed) e.preventDefault();
        }
      }
      else if (e.key === 'Escape') { setMenuOpen(true); }
    };
    window.addEventListener('keydown', onKey);
    return () => window.removeEventListener('keydown', onKey);
  }, [currentIdx, subStep, hasStatSlide, menuOpen]);

  const jump = (i) => { setCurrentIdx(i); setSubStep(0); };

  const renderSlide = () => {
    if (onStat) {
      return <TemplateStatExplainer parentSlide={slide} scheme={scheme}/>;
    }
    switch (slide.template) {
      case 'Hero':       return <TemplateHero slide={slide} scheme={scheme}/>;
      case 'A':          return <TemplateA slide={slide} scheme={scheme}/>;
      case 'B':          return <TemplateB slide={slide} scheme={scheme}/>;
      case 'C':          return <TemplateC slide={slide} scheme={scheme}/>;
      case 'D':          return <TemplateD slide={slide} scheme={scheme} onJump={jump}/>;
      case 'E':          return <TemplateE slide={slide} scheme={scheme}/>;
      case 'F':          return <TemplateF slide={slide} scheme={scheme}/>;
      case 'Nav':        return <TemplateNav slide={slide} scheme={scheme} onJump={jump}/>;
      case 'Idea':       return <TemplateIdea slide={slide} scheme={scheme}/>;
      case 'Evidence':   return <TemplateEvidence slide={slide} scheme={scheme}/>;
      case 'Globe':      return <TemplateGlobe slide={slide} scheme={scheme} onJump={jump}/>;
      case 'Claim':      return <TemplateClaim slide={slide} scheme={scheme}/>;
      case 'Partnerships': return <TemplatePartnerships slide={slide} scheme={scheme}/>;
      case 'Comparison': return <TemplateComparison slide={slide} scheme={scheme}/>;
      case 'LongScroll': return <TemplateLongScroll slide={slide} scheme={scheme} onJump={jump} stepperRef={stepperRef}/>;
      case 'Morph':       return <TemplateMorph slide={slide} scheme={scheme}/>;
      case 'MorphScroll': return <TemplateMorphScroll slide={slide} scheme={scheme} onJump={jump} onSectionChange={setCarouselSectionOverride} stepperRef={stepperRef}/>;
      case 'Appendix':   return <TemplateAppendix slide={slide} scheme={scheme}/>;
      default:           return <TemplateA slide={slide} scheme={scheme}/>;
    }
  };

  return (
    <Stage>
      <div key={`${currentIdx}-${subStep}`} style={{ position: 'absolute', inset: 0, animation: `slideIn 600ms ease-out` }}>
        {renderSlide()}
      </div>

      <NavBar
        scheme={scheme}
        slideNum={currentIdx + 1}
        totalSlides={SLIDES.length}
        sectionLabel={section?.label}
        sectionColor={section?.color}
        bucket={slide.bucket}
        onMenuClick={() => setMenuOpen(true)}
      />
      <SideArrows
        canPrev={currentIdx > 0 || subStep === 1}
        canNext={(subStep === 0 && hasStatSlide) || currentIdx < SLIDES.length - 1}
        onPrev={() => {
          if (subStep === 1) { setSubStep(0); return; }
          if (currentIdx > 0) {
            const prev = SLIDES[currentIdx - 1];
            setCurrentIdx(currentIdx - 1);
            setSubStep(prev.statSlide ? 1 : 0);
          }
        }}
        onNext={() => {
          if (subStep === 0 && hasStatSlide) { setSubStep(1); return; }
          if (currentIdx < SLIDES.length - 1) {
            setCurrentIdx(currentIdx + 1);
            setSubStep(0);
          }
        }}
      />
      <StoryCarousel
        slides={SLIDES}
        sections={SECTIONS}
        currentIdx={currentIdx}
        onJump={jump}
        forceSectionId={carouselSectionOverride}
      />
      <MenuOverlay
        slides={SLIDES}
        open={menuOpen}
        onClose={() => setMenuOpen(false)}
        onJump={jump}
      />

      <div style={{
        position: 'absolute', bottom: 20, right: 24,
        fontFamily: Tokens.fontMono, fontSize: 11,
        color: Tokens.inkFaint, letterSpacing: '0.16em',
        textTransform: 'uppercase', zIndex: 30,
      }}>
        ← → keys{(slide.template === 'MorphScroll' || slide.template === 'LongScroll') && !onStat ? ' · ↑ ↓ sezioni' : ''} · Esc = menu
      </div>
    </Stage>
  );
}

// Stage stretches the 1920×1080 canvas to fill the viewport exactly via
// non-uniform scale (scaleX, scaleY independent). Result: zero letterbox,
// zero crop — full window always used. Trade-off: slight distortion when
// the viewport aspect ratio differs from 16:9 (e.g. on a 16:10 window the
// stage is stretched ~11% vertically). For typography this is invisible;
// for circles (e.g. Globe earth) they become slight ellipses, which reads
// fine in a stylized context.
function Stage({ children }) {
  const [scale, setScale] = React.useState({ x: 1, y: 1 });
  const stageRef = React.useRef(null);
  const W = 1920, H = 1080;
  React.useEffect(() => {
    const measure = () => {
      if (!stageRef.current) return;
      const el = stageRef.current.parentElement;
      setScale({
        x: el.clientWidth / W,
        y: el.clientHeight / H,
      });
    };
    measure();
    window.addEventListener('resize', measure);
    return () => window.removeEventListener('resize', measure);
  }, []);
  return (
    <div style={{
      position: 'absolute', inset: 0,
      background: '#000', overflow: 'hidden',
    }}>
      <div ref={stageRef} style={{
        width: W, height: H,
        position: 'absolute',
        left: 0, top: 0,
        transform: `scale(${scale.x}, ${scale.y})`,
        transformOrigin: 'top left',
        background: Tokens.bg,
      }}>
        {children}
      </div>
    </div>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App/>);
