{
  "schema": "axis.glitch-line.v1",
  "title": "Sub-línea gráfica de Glitch — complementa a La órbita sólo para Glitch",
  "franchise": "glitch",
  "appliesTo": "Sólo piezas de Glitch, el magazine semanal de Efeonce. Para cualquier otra pieza usa /references/graphic-line.json.",
  "status": "approved",
  "updated": "2026-09-28",
  "numbering": {
    "source": "https://efeoncepro.com/glitch/",
    "rule": "La manda el registro de ediciones publicadas (el blog de Glitch): una semanal nueva lleva un número mayor que el último publicado.",
    "asOf": "Al 2026-09-28 el blog publicó hasta la #17 (2026-07-28): la próxima semanal es la #18."
  },
  "canvas": "https://claude.ai/artifact/N3Yg5cyz2zXa36SwtWVHYS",
  "canon": "greenhouse-eo/docs/operations/brand-graphic-line/glitch/GLITCH_GRAPHIC_LINE_V1.md",
  "decision": "greenhouse-eo/docs/architecture/GLITCH_GRAPHIC_LINE_DECISION_V1.md",
  "page": "/references/glitch/",
  "guide": "docs/agent-composition/glitch.md",
  "parentLine": {
    "page": "/references/graphic-line/",
    "ground": "#001a33"
  },
  "tokenStatus": "Los valores salen del token glitchLine de @efeoncepro/axis-tokens y las reglas del contrato efeonce.glitch-line de @efeoncepro/axis-ui-contracts (pnpm glitch:resolve). Nunca copies valores a mano.",
  "tokens": {
    "export": "glitchLine",
    "package": "@efeoncepro/axis-tokens",
    "value": {
      "status": "canonical",
      "franchise": "glitch",
      "inheritsFrom": "efeonceGraphicLine",
      "approvedOn": "2026-09-27",
      "scope": {
        "inherits": [
          "ring-asks-sphere-answers",
          "one-sphere-per-piece",
          "no-text-crosses-orbit",
          "halo",
          "lens-anatomy",
          "ground",
          "families",
          "signature",
          "accent-contrast",
          "iconography",
          "sonic-territory"
        ],
        "exclusive": [
          "apple-sphere",
          "accent-green",
          "bytes-glitch",
          "guttery-narrator",
          "edition-masthead",
          "flash-masthead",
          "microphone-opens-closes",
          "glitch-drop",
          "bytes-transition"
        ],
        "sharedWithEditorialFamily": [
          "navy-wordmark"
        ],
        "never": "efeonce-pieces"
      },
      "color": {
        "ground": "#001a33",
        "accent": "#6ec207",
        "navy": "#022a4e",
        "text": "#e6edf3",
        "textStrong": "#ffffff",
        "sub": "#9fb3c8",
        "line": "#1d3a57",
        "onLight": "#022a4e",
        "accentOnLight": "never-text-border-separator",
        "explorationAccents": [
          "#36c8bf",
          "#ff6500"
        ]
      },
      "type": {
        "headlineEntry": {
          "family": "Bricolage Grotesque",
          "weight": 300,
          "width": 100,
          "sizeEm": 0.72
        },
        "headlineClose": {
          "family": "Bricolage Grotesque",
          "weight": 800,
          "width": 78,
          "fontStretch": "78%"
        },
        "headlineTracking": "0.01em",
        "headlineContrast": {
          "entryMaxWeight": 400,
          "closeMinWeight": 700
        },
        "label": {
          "family": "Poppins",
          "weight": 600,
          "transform": "uppercase-spaced"
        },
        "body": {
          "family": "Poppins"
        },
        "subtitle": {
          "family": "Poppins",
          "weight": 600
        },
        "narrator": {
          "family": "Guttery",
          "color": "accent",
          "rotationDeg": [
            -5,
            -3
          ],
          "licenseStatus": "licensed",
          "licenseScope": [
            "web",
            "video"
          ],
          "licenseRef": "confirmada por el operador en chat, 2026-09-27; número de contrato pendiente",
          "distribution": "install-on-render-machine"
        }
      },
      "masthead": {
        "wordmarkWidthPx": 290,
        "canvasWidthPx": 1080,
        "editionLabel": {
          "text": "EDICIÓN",
          "family": "Poppins",
          "weight": 600,
          "sizePx": 16,
          "tracking": "0.24em"
        },
        "editionNumber": {
          "family": "Bricolage Grotesque",
          "sizePx": 92,
          "hash": {
            "weight": 300,
            "color": "textStrong"
          },
          "number": {
            "weight": 800,
            "width": 78,
            "color": "accent"
          }
        },
        "layout": "single-row-vertically-centered",
        "rule": "none"
      },
      "editions": {
        "kinds": [
          "weekly",
          "flash"
        ],
        "default": "weekly",
        "weekly": {
          "numbered": true,
          "masthead": "edition-number",
          "numbering": {
            "source": "published-editions",
            "registry": "https://efeoncepro.com/glitch/",
            "rule": "greater-than-last-published",
            "validatedBy": "consumer",
            "stateInToken": "never"
          },
          "progress": {
            "segments": 8
          },
          "chips": {
            "cover": "LA NOTICIA"
          },
          "narratorCloser": {
            "rule": "varies-per-edition",
            "never": [
              "fixed-phrase"
            ],
            "mayMention": [
              "next-edition-number"
            ]
          }
        },
        "flash": {
          "status": "approved",
          "approvedOn": "2026-09-28",
          "trigger": "breaking-news",
          "numbered": false,
          "masthead": {
            "label": {
              "text": "NO ESPERA AL LUNES",
              "family": "Poppins",
              "weight": 600,
              "sizePx": 16,
              "tracking": "0.24em"
            },
            "word": {
              "text": "FLASH",
              "family": "Bricolage Grotesque",
              "sizePx": 92,
              "glyph": {
                "weight": 800,
                "width": 78,
                "color": "accent"
              }
            },
            "trail": {
              "cell": "square",
              "color": "accent",
              "cellPx": 10,
              "stepPx": 12,
              "columns": 13,
              "rows": 5,
              "opacity": {
                "from": 0.18,
                "to": 1,
                "towards": "word"
              },
              "density": "grows-towards-word",
              "side": "left-of-word",
              "contexts": {
                "large": {
                  "widthPx": 150,
                  "gapPx": 14,
                  "pieces": [
                    "flash-portada",
                    "flash-contraportada",
                    "flash-blog-banner",
                    "flash-threads"
                  ]
                },
                "compact": {
                  "widthPx": 66,
                  "gapPx": 8,
                  "pieces": [
                    "flash-interior"
                  ]
                },
                "news": {
                  "widthPx": 96,
                  "gapPx": 10,
                  "pieces": [
                    "flash-blog-banner-interno"
                  ]
                }
              },
              "gapPx": 14,
              "widthPx": {
                "compact": 66,
                "newsBanner": 96
              },
              "skew": "never",
              "italic": "never",
              "seed": 1755
            },
            "compact": "label-trail-word-inline",
            "layout": "single-row-vertically-centered",
            "rule": "none"
          },
          "chips": {
            "cover": "LA NOTICIA",
            "interior": "ANUNCIO"
          },
          "chipDetail": {
            "interior": "outlet-and-date",
            "inlineBanner": "section"
          },
          "progress": "none",
          "swipe": "label-and-hand-only",
          "microphoneOpens": "kept",
          "narratorCloser": {
            "rule": "varies-per-edition",
            "lines": 2,
            "never": [
              "next-edition-number",
              "fixed-phrase"
            ],
            "example": {
              "edition": "flash-claude-sonnet-5-5",
              "lines": [
                "léelo completo",
                "en nuestro blog."
              ]
            },
            "rejected": [
              "el resto, el lunes"
            ]
          },
          "subscription": "weekly"
        }
      },
      "bytes": {
        "edges": [
          "bottom",
          "side"
        ],
        "duotone": {
          "from": "#001a33",
          "to": "#cfe4fa"
        },
        "appleBitsPerCell": 8,
        "neverOverFace": true
      },
      "apple": {
        "assetId": "glitch-apple",
        "viewBox": [
          539,
          0,
          118,
          154
        ],
        "perPiece": 1,
        "closes": [
          "headline",
          "pov"
        ],
        "halo": [
          {
            "offset": 0,
            "opacity": 0.13
          },
          {
            "offset": 0.6,
            "opacity": 0.03
          },
          {
            "offset": 1,
            "opacity": 0
          }
        ]
      },
      "assets": {
        "wordmarkOnLight": "glitch-logo-positive",
        "wordmarkOnDark": "glitch-logo-negative",
        "apple": "glitch-apple"
      },
      "dots": {
        "count": 3,
        "opening": "third-breaks-into-bytes",
        "closing": "third-resolves-into-apple"
      },
      "signature": {
        "logo": "efeonce-logo-negative",
        "position": "bottom-center",
        "slogan": {
          "line": "growth",
          "word": "Growth",
          "text": "Empower your Growth",
          "only": [
            "contraportada"
          ]
        },
        "urlBubble": false
      },
      "icons": {
        "voices": [
          "stroke",
          "plastilina"
        ],
        "glitchGlyphs": [
          "guardar",
          "compartir",
          "recomendar",
          "comentar",
          "deslizar"
        ],
        "actions": {
          "row": {
            "pieces": [
              "contraportada",
              "flash-contraportada"
            ],
            "glyphs": [
              "guardar",
              "compartir",
              "recomendar",
              "comentar"
            ]
          },
          "swipe": {
            "pieces": [
              "portada-a",
              "portada-b",
              "portada-c",
              "interior",
              "interior-noticia-1",
              "interior-lente",
              "flash-portada",
              "flash-interior"
            ],
            "glyph": "deslizar"
          },
          "voice": "plastilina",
          "rendering": "flat",
          "volume": "never"
        }
      },
      "formats": {
        "linkedin-4x5": {
          "w": 1080,
          "h": 1350
        },
        "landscape-16x9": {
          "w": 1920,
          "h": 1080
        },
        "square-1x1": {
          "w": 1080,
          "h": 1080
        },
        "blog-inline-16x9": {
          "w": 1600,
          "h": 900
        },
        "reel-9x16": {
          "w": 1080,
          "h": 1920
        }
      },
      "safeZones": {
        "linkedin-4x5": {
          "photoBand": [
            176,
            626
          ]
        },
        "landscape-16x9": {
          "kit": {
            "x": 72,
            "width": 1140,
            "header": 60,
            "lowerThird": 818,
            "news": 776,
            "cta": 872,
            "sourceWidth": 1100
          }
        },
        "reel-9x16": {
          "appUiTop": [
            0,
            220
          ],
          "appUiBottomFrom": 1500,
          "buttonsFromX": 940,
          "masthead": [
            240,
            440
          ],
          "text": [
            1150,
            1480
          ],
          "kit": {
            "x": 64,
            "width": 876,
            "header": 250,
            "lowerThird": 1150,
            "news": 1300,
            "drop": 1150,
            "cta": 1250,
            "sourceHeight": 640,
            "hostHeadY": 1050
          }
        }
      },
      "motion": {
        "status": "approved",
        "fps": 30,
        "curves": {
          "arrive": "emphasized",
          "transform": "standard",
          "exit": "emphasizedAccelerate"
        },
        "overshoot": {
          "default": 1.2,
          "ship": 0.9,
          "sphereBirth": 2,
          "letters": 1.6
        },
        "pulse": {
          "rise": 1.6,
          "decay": 3.2,
          "gain": 1.35,
          "echo": 0.55
        },
        "impactScale": 0.045,
        "wave": {
          "fromScale": 1.02,
          "toScale": 1.5,
          "fromStrokePx": 9,
          "toStrokePx": 1.5,
          "opacity": 0.85,
          "fadeExponent": 1.6
        },
        "halo": {
          "flashGain": 1.4,
          "endOpacity": 0.55
        },
        "pieces": {
          "apertura": {
            "frames": 120,
            "hits": {
              "break": 24,
              "impact": 48,
              "slam": 69
            }
          },
          "tarjetaFinal": {
            "frames": 90,
            "hits": {
              "slam": 6,
              "cut": 57,
              "dotReturns": 74
            }
          },
          "preroll": {
            "frames": 96,
            "bpm": 150,
            "beatFrames": 12,
            "formats": [
              "landscape-16x9"
            ]
          }
        },
        "mnemonicSync": {
          "piece": "apertura",
          "frame": 48,
          "sound": "B"
        },
        "loop": "end-card-last-frame-equals-opening-first-frame",
        "closer": {
          "slot": "narrator-closer",
          "pieces": [
            "tarjetaFinal",
            "cta"
          ],
          "source": "editions.narratorCloser",
          "fixedText": "never"
        },
        "kit": {
          "cabecera": {
            "durationMs": {
              "first": 2000,
              "next": 1200,
              "exit": 400
            },
            "frames": {
              "in": 3,
              "wordmark": 6,
              "fill": 13,
              "advance": 4,
              "advanceFill": 6,
              "exitCut": 3
            }
          },
          "lowerThird": {
            "durationMs": 5000,
            "frames": {
              "in": 3,
              "ring": 6,
              "dot": 8,
              "apple": 9,
              "trail": 12,
              "orbit": 20,
              "pulse": 20,
              "tag": [
                9,
                17
              ],
              "name": 12,
              "role": 18,
              "glitchOut": 132,
              "close": 134,
              "gone": 141
            }
          },
          "noticia": {
            "durationMs": 5000,
            "frames": {
              "in": 3,
              "glitch": 5,
              "tag": [
                9,
                17
              ],
              "headline": 12,
              "source": 27,
              "glitchOut": 132,
              "out": 134,
              "bytesIn": 3,
              "bytesGlitchOut": 126,
              "bytesOut": 129
            }
          },
          "fuente": {
            "durationMs": 5000,
            "frames": {
              "in": 3,
              "melt": 10,
              "credit": 20,
              "meltOut": 128,
              "glitchOut": 130,
              "out": 133
            }
          },
          "drop": {
            "durationMs": 4000,
            "withBytesTransitionMs": 4500,
            "frames": {
              "in": 3,
              "icon": 6,
              "iconSettle": 22,
              "tag": [
                6,
                13
              ],
              "lite": [
                13,
                28
              ],
              "slam": 31,
              "shake": 33,
              "apple": 37,
              "wave": 38,
              "foot": 42,
              "glitchOut": 106,
              "cut": 109,
              "groundOut": 110,
              "bytesIn": 3,
              "bytesGlitchOut": 108,
              "bytesAppleOff": 111,
              "bytesOut": 113
            }
          },
          "cta": {
            "durationMs": 4000,
            "frames": {
              "in": 3,
              "pill": 14,
              "pulse": 48,
              "glitchOut": 105,
              "cut": 108
            }
          }
        },
        "transitions": {
          "scene": {
            "fastMs": 500,
            "normalMs": 800,
            "origins": {
              "reel-9x16": {
                "x": 876,
                "y": 276
              },
              "landscape-16x9": {
                "x": 1772,
                "y": 82
              }
            }
          },
          "hero": {
            "durationMs": 1200,
            "frames": 36
          },
          "byteCellPx": {
            "reel-9x16": 60,
            "landscape-16x9": 64
          },
          "neverOverFace": true
        },
        "signatureOnGlitchCut": "cut-only",
        "reducedMotion": "final-frame"
      },
      "pieces": {
        "portada-a": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": "A",
          "sphere": "apple",
          "headline": true
        },
        "portada-b": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": "B",
          "sphere": "apple",
          "headline": true
        },
        "portada-c": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": "C",
          "sphere": "apple",
          "headline": true
        },
        "interior": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "interior-noticia-1": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "interior-lente": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "lens",
          "headline": true
        },
        "contraportada": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-a": {
          "status": "aprobada",
          "surface": "blog",
          "format": "landscape-16x9",
          "coverTemplate": "A",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-b": {
          "status": "aprobada",
          "surface": "blog",
          "format": "landscape-16x9",
          "coverTemplate": "B",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-c": {
          "status": "aprobada",
          "surface": "blog",
          "format": "landscape-16x9",
          "coverTemplate": "C",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-square-a": {
          "status": "aprobada",
          "surface": "blog",
          "format": "square-1x1",
          "coverTemplate": "A",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-square-b": {
          "status": "aprobada",
          "surface": "blog",
          "format": "square-1x1",
          "coverTemplate": "B",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-square-c": {
          "status": "aprobada",
          "surface": "blog",
          "format": "square-1x1",
          "coverTemplate": "C",
          "sphere": "apple",
          "headline": true
        },
        "blog-banner-interno": {
          "status": "aprobada",
          "surface": "blog",
          "format": "blog-inline-16x9",
          "coverTemplate": null,
          "sphere": "none",
          "headline": false
        },
        "reel-portada": {
          "status": "aprobada",
          "surface": "reel",
          "format": "reel-9x16",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "reel-overlay": {
          "status": "aprobada",
          "surface": "reel",
          "format": "reel-9x16",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": false
        },
        "reel-tarjeta-final": {
          "status": "aprobada",
          "surface": "reel",
          "format": "reel-9x16",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "vlog-overlay": {
          "status": "aprobada",
          "surface": "vlog",
          "format": "landscape-16x9",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": false
        },
        "vlog-tarjeta-final": {
          "status": "aprobada",
          "surface": "vlog",
          "format": "landscape-16x9",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "historia-9x16": {
          "status": "exploracion",
          "surface": "story",
          "format": "reel-9x16",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "carrusel-panoramico": {
          "status": "exploracion",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true
        },
        "flash-portada": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true,
          "edition": "flash",
          "derivesFrom": "portada-a",
          "chip": "cover"
        },
        "flash-interior": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true,
          "edition": "flash",
          "derivesFrom": "interior-noticia-1",
          "chip": "interior"
        },
        "flash-contraportada": {
          "status": "aprobada",
          "surface": "carousel",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true,
          "edition": "flash",
          "derivesFrom": "contraportada",
          "chip": null
        },
        "flash-blog-banner": {
          "status": "aprobada",
          "surface": "blog",
          "format": "landscape-16x9",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true,
          "edition": "flash",
          "derivesFrom": "blog-banner-a",
          "chip": "cover"
        },
        "flash-blog-banner-interno": {
          "status": "aprobada",
          "surface": "blog",
          "format": "blog-inline-16x9",
          "coverTemplate": null,
          "sphere": "none",
          "headline": false,
          "edition": "flash",
          "derivesFrom": "blog-banner-interno",
          "chip": "interior"
        },
        "flash-threads": {
          "status": "aprobada",
          "surface": "threads",
          "format": "linkedin-4x5",
          "coverTemplate": null,
          "sphere": "apple",
          "headline": true,
          "edition": "flash",
          "derivesFrom": "flash-portada",
          "chip": "cover"
        }
      },
      "coverRotation": {
        "templates": [
          "A",
          "B",
          "C"
        ],
        "rule": "never-same-as-previous-week",
        "chooseBy": {
          "strongPhoto": "A",
          "standalonePov": "B",
          "severalEqualNews": "C"
        }
      },
      "pendingDecisions": [
        "subtitle-style",
        "bytes-transition-pieces",
        "recording-fps"
      ],
      "resolvedDecisions": [
        {
          "id": "weekly-cover-chip",
          "resolvedOn": "2026-09-28",
          "resolution": "La portada productiva, de la semanal y del Flash, usa el chip «LA NOTICIA»; «PORTADA» fue el texto de prueba.",
          "reason": "El operador pidió sustituir «PORTADA» en la versión productiva; Greenhouse ya lo aplica en sus plantillas de portada y banners (commit 24e4c72ee).",
          "tokenPath": "editions.weekly.chips.cover"
        },
        {
          "id": "edition-numbering-blog-vs-system",
          "resolvedOn": "2026-09-28",
          "resolution": "Manda el registro de ediciones publicadas (el blog de Glitch). El token guarda sólo la regla, nunca el último número ni el próximo.",
          "reason": "El blog ya publicó «Glitch #16» (2026-07-21) y «Glitch #17» (2026-07-28), así que la próxima semanal es la #18; guardar un número en el token lo dejaría desactualizado con cada edición.",
          "tokenPath": "editions.weekly.numbering"
        }
      ]
    }
  },
  "contract": {
    "id": "efeonce.glitch-line",
    "version": "0.2.0",
    "lifecycle": "stable",
    "package": "@efeoncepro/axis-ui-contracts",
    "resolver": "resolveGlitchLineIntent",
    "command": "pnpm glitch:resolve -- --input <intent.json> --out <manifest.json>",
    "manifest": "axis.glitch-line-composition.v1",
    "schema": "docs/agent-composition/glitch-line-intent.schema.json",
    "examples": "docs/examples/glitch/",
    "issueCodes": [
      "intent-required",
      "contract-invalid",
      "version-unsupported",
      "franchise-required",
      "piece-invalid",
      "piece-not-approved",
      "format-invalid",
      "sphere-count-exceeded",
      "sphere-kind-invalid",
      "accent-text-on-light",
      "overlay-outside-canvas",
      "overlay-over-host-face",
      "overlay-over-app-ui",
      "bytes-over-face",
      "previous-cover-template-required",
      "cover-template-repeated",
      "headline-required",
      "headline-weight-contrast-missing",
      "narrator-font-unlicensed",
      "narrator-rotation-invalid",
      "slogan-not-applicable",
      "icon-volume-not-applicable",
      "url-bubble-not-applicable",
      "edition-kind-invalid",
      "edition-kind-mismatch",
      "flash-edition-number-not-allowed",
      "flash-progress-not-allowed",
      "progress-invalid"
    ]
  },
  "assets": [
    {
      "id": "glitch-logo-positive",
      "kind": "wordmark",
      "surface": "light",
      "variant": "positive",
      "sha256": "65cba8b7711765bcc5a8b29766ccd0f3eb9c3bc8c40fc3fbc780bbee817806eb",
      "package": "@efeoncepro/axis-brand-assets",
      "file": "assets/glitch/glitch-logo-positive.svg"
    },
    {
      "id": "glitch-logo-negative",
      "kind": "wordmark",
      "surface": "dark",
      "variant": "negative",
      "sha256": "f5b8be3b673195dc2d241d60a965375db241e48160b966eecbd206f5099837e8",
      "package": "@efeoncepro/axis-brand-assets",
      "file": "assets/glitch/glitch-logo-negative.svg"
    },
    {
      "id": "glitch-apple",
      "kind": "sphere",
      "surface": "any",
      "variant": "accent",
      "sha256": "e24ee1b26ec04a5807cfa3afab0887c6cf89a54f366883a600df06e3708b5989",
      "package": "@efeoncepro/axis-brand-assets",
      "file": "assets/glitch/glitch-apple.svg"
    }
  ],
  "scope": {
    "inherits": [
      "La gramática: el anillo pregunta, la esfera responde; rodea, mide, enfoca.",
      "Una sola esfera por pieza; ningún texto cruza la órbita; el halo.",
      "La anatomía de la lente (token lens) y el fondo #001a33.",
      "Bricolage Grotesque y Poppins; la regla de contraste del acento.",
      "La firma: logo de Efeonce centrado abajo (Efeonce firma todo).",
      "La iconografía AXIS (Trazo y Plastilina) y el territorio sonoro «Puntos suspensivos»."
    ],
    "exclusive": [
      "La manzana como esfera.",
      "El verde #6ec207 y el navy #022a4e de Glitch.",
      "La falla en bytes.",
      "Guttery como voz del narrador.",
      "La cabecera «EDICIÓN #N», «El micrófono se abre / se cierra» y el Glitch Drop."
    ],
    "never": "Nada de lo exclusivo de Glitch va en una pieza de Efeonce. Esta página no reemplaza a La órbita: la complementa sólo para Glitch."
  },
  "palette": [
    {
      "key": "ground",
      "name": "Fondo",
      "hex": "#001a33",
      "note": "El dark de La órbita (efeonceGraphicLine.color.dark)."
    },
    {
      "key": "accent",
      "name": "Verde Glitch",
      "hex": "#6ec207",
      "note": "Acento: manzana, número de edición, «+ IA», una palabra del subtítulo. Nunca texto, borde ni separador sobre claro."
    },
    {
      "key": "navy",
      "name": "Navy Glitch",
      "hex": "#022a4e",
      "note": "Del wordmark. Tinta sobre claro en el blog."
    },
    {
      "key": "text",
      "name": "Texto",
      "hex": "#e6edf3",
      "note": "Sobre oscuro; blanco para titulares."
    },
    {
      "key": "sub",
      "name": "Secundario",
      "hex": "#9fb3c8",
      "note": "Etiquetas y fuentes sobre oscuro."
    }
  ],
  "apple": {
    "d": "M629.79,52.06c-5.93-1.91-10.69-2.28-14.59-2.17,2.82-8.16,10.43-24.11,21.59-26.94,2.6-.66,4.17-3.29,3.51-5.89-.66-2.6-3.3-4.18-5.89-3.51-6.1,1.55-11.15,5.35-15.24,9.9-.4-2.46-1.09-4.91-2.26-7.19-5.45-10.64-19.76-15.51-21.37-16.03-2.55-.82-5.28.58-6.11,3.13-.52,1.61-4.92,16.07.53,26.71,3.79,7.39,11.85,12,16.96,14.29-.38.98-.68,1.83-.94,2.55-3.1-2.37-7.17-4.86-13.12-6.77-16.85-5.43-39.26-4.7-50.34,29.64-8.27,25.65,1.19,66.64,22.2,73.42,4.67,1.51,9.6,2.14,14.69,1.88,3.97,3.18,8.35,5.55,13.02,7.05,26.75,8.63,53-22.09,60.91-46.62,11.07-34.34-6.69-48.03-23.54-53.46ZM585.41,63.23c-7.12-2.3-13.85-4.47-19.81,14-.82,2.55-3.55,3.95-6.11,3.13s-3.95-3.55-3.13-6.11c7.87-24.41,20.6-23.94,32.02-20.26,2.55.82,3.95,3.55,3.13,6.11-.82,2.55-3.55,3.95-6.11,3.13Z",
    "viewBox": "539 0 118 154",
    "assetId": "glitch-apple",
    "note": "La manzana del wordmark oficial (glitch-apple, @efeoncepro/axis-brand-assets): la esfera de Glitch. Una por pieza o pantalla."
  },
  "elements": [
    {
      "key": "masthead",
      "name": "Cabecera",
      "rule": "Wordmark (290 px en 1080) a la izquierda; «EDICIÓN» en Poppins 600 con tracking 0,24 em sobre «#N» en Bricolage 92 px («#» 300 blanco, número 800 condensado en el acento), a la derecha. Una fila centrada en vertical; sin línea debajo."
    },
    {
      "key": "weights",
      "name": "Contraste de pesos",
      "rule": "Entrada en Bricolage 300 (ancho 100, 0,72 em) y remate en 800 condensada (ancho 78). Nunca todo en 800: el contraste es la voz que pregunta y la que responde."
    },
    {
      "key": "apple",
      "name": "La manzana",
      "rule": "Cierra el titular o el POV como punto final. Una sola por pieza o pantalla; si hay lente, la esfera es la de la lente."
    },
    {
      "key": "dots",
      "name": "Los tres puntos",
      "rule": "«El micrófono se abre…»: dos puntos y el tercero se desarma en bytes. En los cierres, el tercero se resuelve en la manzana."
    },
    {
      "key": "bytes",
      "name": "La falla en bytes",
      "rule": "La foto de la noticia, en navy apagado (duotono #001a33 → #cfe4fa), se desarma en celdas por su borde. Nunca sobre un rostro."
    },
    {
      "key": "guttery",
      "name": "Guttery",
      "rule": "Sólo para las muletillas del narrador («spoiler:», «sin anestesia.», «nos vemos el lunes.»), en el acento y rotada 3–5° hacia la izquierda. Licenciada (web y video; se instala en la máquina que renderiza, nunca en git)."
    },
    {
      "key": "sections",
      "name": "Secciones + IA",
      "rule": "«MARKETING + IA», «CREATIVIDAD + IA», «TECNOLOGÍA + IA»: la IA cruza todas las secciones."
    },
    {
      "key": "icons",
      "name": "Iconografía",
      "rule": "Plastilina plana, en vector, para guardar, compartir, recomendar, comentar, deslizar: glifos del catálogo AXIS (PLASTILINA_GLYPHS). En Glitch nunca en volumen 3D."
    }
  ],
  "rotation": "Nunca dos semanas seguidas con la misma plantilla. La elige el contenido: ¿hay una foto fuerte? A · ¿un POV que pega solo? B · ¿varias noticias del mismo peso? C.",
  "pieces": [
    {
      "family": "portada",
      "id": "portada-a",
      "name": "A · La noticia de portada",
      "image": "portada-a.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "Semana con una foto fuerte: la foto en navy se desarma en bytes; titular con contraste de pesos cerrado con la manzana; dos líneas «+ IA»; pie con «Desliza».",
      "alt": "Portada A de Glitch: foto de la noticia en navy que se desarma en bytes y titular cerrado con la manzana verde.",
      "url": "https://axis.efeonce.org/media/glitch/portada-a.webp"
    },
    {
      "family": "portada",
      "id": "portada-b",
      "name": "B · Tipográfica",
      "image": "portada-b.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "Semana sin foto fuerte: muletilla en Guttery, titular 300 + remate 800 en el acento, manzana en bytes con halo.",
      "alt": "Portada B de Glitch: titular tipográfico con el remate en verde y una manzana hecha de bytes.",
      "url": "https://axis.efeonce.org/media/glitch/portada-b.webp"
    },
    {
      "family": "portada",
      "id": "portada-c",
      "name": "C · Mosaico",
      "image": "portada-c.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "Varias noticias del mismo peso: titular que las une y cuatro tarjetas con foto en navy y POV.",
      "alt": "Portada C de Glitch: titular y cuatro tarjetas de noticias con foto en navy.",
      "url": "https://axis.efeonce.org/media/glitch/portada-c.webp"
    },
    {
      "family": "portada",
      "id": "feed",
      "name": "El feed: nueve semanas",
      "status": "aprobada",
      "image": "feed.webp",
      "w": 1080,
      "h": 1452,
      "alt": "Nueve semanas de portadas de Glitch en el feed, rotando entre las plantillas A, B y C.",
      "url": "https://axis.efeonce.org/media/glitch/feed.webp"
    },
    {
      "family": "carrusel",
      "id": "interior",
      "name": "Lámina interior",
      "image": "interior.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "Una por noticia: foto en navy con bytes, la noticia en Bricolage 300, el Glitch Drop en 800 con la manzana, avance n/8 y «Desliza».",
      "alt": "Lámina interior de Glitch con la foto de la noticia, el titular y el Glitch Drop.",
      "url": "https://axis.efeonce.org/media/glitch/interior.webp"
    },
    {
      "family": "carrusel",
      "id": "interior-noticia-1",
      "name": "Noticia 1",
      "image": "interior-noticia-1.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "«El micrófono se abre» vive aquí, en una franja propia entre la cabecera y la foto (ajuste del operador).",
      "alt": "Lámina de la noticia 1 con la franja «El micrófono se abre» sobre la foto.",
      "url": "https://axis.efeonce.org/media/glitch/interior-noticia-1.webp"
    },
    {
      "family": "carrusel",
      "id": "contraportada",
      "name": "Contraportada",
      "image": "contraportada.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "«El micrófono se cierra»; los puntos se resuelven en la manzana; acciones Plastilina; «Suscríbete a Glitch»; firma y eslogan.",
      "alt": "Contraportada de Glitch con «El micrófono se cierra», acciones y firma de Efeonce.",
      "url": "https://axis.efeonce.org/media/glitch/contraportada.webp"
    },
    {
      "family": "carrusel",
      "id": "interior-lente",
      "name": "Interior con lente",
      "image": "interior-lente.webp",
      "w": 1080,
      "h": 1350,
      "status": "aprobada",
      "format": "LinkedIn 1080×1350",
      "rule": "Variante ocasional (aprobada 2026-09-27): sólo cuando el POV trata de un detalle nítido de la foto; la lente de La órbita es la esfera, así que el POV no lleva manzana.",
      "alt": "Variante de la lámina interior con la lente de La órbita sobre un detalle de la foto.",
      "url": "https://axis.efeonce.org/media/glitch/interior-lente.webp"
    },
    {
      "family": "blog",
      "id": "blog-banner-a",
      "name": "Banner 16:9 · A",
      "image": "blog-banner-a.webp",
      "w": 1080,
      "h": 608,
      "status": "aprobada",
      "format": "Blog 1920×1080",
      "rule": "La portada A en horizontal; sin «Desliza». El archivo del blog recorta en cuadrado: la versión 1:1 es una plantilla propia, nunca la portada 4:5 recortada.",
      "alt": "Banner horizontal de Glitch con la foto de la noticia a la derecha y el titular a la izquierda.",
      "url": "https://axis.efeonce.org/media/glitch/blog-banner-a.webp"
    },
    {
      "family": "blog",
      "id": "blog-banner-b",
      "name": "Banner 16:9 · B",
      "image": "blog-banner-b.webp",
      "w": 1080,
      "h": 608,
      "status": "aprobada",
      "format": "Blog 1920×1080",
      "rule": "La portada B en horizontal.",
      "alt": "Banner horizontal tipográfico de Glitch con la manzana en bytes.",
      "url": "https://axis.efeonce.org/media/glitch/blog-banner-b.webp"
    },
    {
      "family": "blog",
      "id": "blog-banner-c",
      "name": "Banner 16:9 · C",
      "image": "blog-banner-c.webp",
      "w": 1080,
      "h": 608,
      "status": "aprobada",
      "format": "Blog 1920×1080",
      "rule": "La portada C en horizontal: cuatro tarjetas en fila.",
      "alt": "Banner horizontal de Glitch con cuatro tarjetas de noticias.",
      "url": "https://axis.efeonce.org/media/glitch/blog-banner-c.webp"
    },
    {
      "family": "blog",
      "id": "blog-post",
      "name": "Maqueta del post",
      "image": "blog-post.webp",
      "w": 1200,
      "h": 3960,
      "status": "aprobada",
      "alt": "Maqueta del post de Glitch en el blog, con sus nueve elementos internos numerados.",
      "elements": [
        "Banner 16:9 como imagen destacada.",
        "Apertura navy «El micrófono se abre» con la tesis (reemplaza la cita con la fecha).",
        "La escaleta: el índice de las ocho, como en radio.",
        "Banner interno de cada noticia (1600×900): la foto en navy con bytes, número y sección; reemplaza la imagen cruda de la fuente y lleva siempre el crédito de la foto.",
        "Callout Glitch v2: bloque navy con los puntos, el remate en 800 con la manzana y el porqué. Reemplaza al v1 desde la próxima semanal: el bloque de WordPress efeoncepro/glitch-drop (TASK-1337) se actualiza antes de publicarla; los posts anteriores siguen con el v1.",
        "Banner de suscripción a mitad del post, con una sola acción.",
        "El vlog embebido antes del cierre.",
        "«El hilo de la semana»: el cierre editorial.",
        "Cierre «El micrófono se cierra.», firma del equipo y acciones Plastilina en versión papel."
      ],
      "url": "https://axis.efeonce.org/media/glitch/blog-post.webp"
    },
    {
      "family": "video",
      "id": "vlog-apertura",
      "name": "Vlog 16:9 · apertura",
      "image": "vlog-apertura.webp",
      "w": 1080,
      "h": 608,
      "status": "aprobada",
      "format": "YouTube y blog",
      "rule": "Los puntos se arman en la manzana con el mnemónico «Puntos suspensivos».",
      "alt": "Pantalla de apertura del vlog: dos puntos y la manzana, y «El micrófono se abre».",
      "url": "https://axis.efeonce.org/media/glitch/vlog-apertura.webp"
    },
    {
      "family": "video",
      "id": "vlog-cierre",
      "name": "Tarjeta final 16:9",
      "image": "vlog-cierre.webp",
      "w": 1080,
      "h": 608,
      "status": "aprobada",
      "format": "YouTube y blog",
      "rule": "Centrada, espejo de la apertura; un mensaje, una acción, la firma. Sin texturas finas.",
      "alt": "Tarjeta final del vlog con «El micrófono se cierra», una acción y la firma de Efeonce.",
      "url": "https://axis.efeonce.org/media/glitch/vlog-cierre.webp"
    },
    {
      "family": "video",
      "id": "reel-mapa",
      "name": "Reel · mapa de zonas",
      "image": "reel-mapa.webp",
      "w": 1080,
      "h": 1920,
      "status": "aprobada",
      "format": "Reel 1080×1920",
      "rule": "Interfaz de la app (0–220 arriba, desde 1500 abajo, botones desde x 940), cabecera 240–440, la cara del host nunca se tapa, texto 1150–1480.",
      "alt": "Mapa de zonas del reel sobre la toma de prueba del host.",
      "url": "https://axis.efeonce.org/media/glitch/reel-mapa.webp"
    },
    {
      "family": "video",
      "id": "reel-narrador",
      "name": "Reel · el host habla",
      "image": "reel-narrador.webp",
      "w": 1080,
      "h": 1920,
      "status": "aprobada",
      "format": "Reel 1080×1920",
      "rule": "Cabecera (noticia n/3 + wordmark), lower third una vez, subtítulos con una palabra en el acento.",
      "alt": "Host a cámara con la cabecera, el lower third y el subtítulo encima.",
      "url": "https://axis.efeonce.org/media/glitch/reel-narrador.webp"
    },
    {
      "family": "video",
      "id": "reel-noticia",
      "name": "Reel · la noticia",
      "image": "reel-noticia.webp",
      "w": 1080,
      "h": 1920,
      "status": "aprobada",
      "format": "Reel 1080×1920",
      "rule": "Plano dividido: la noticia arriba se desarma en bytes hacia el host, reencuadrado abajo; tarjeta con el titular.",
      "alt": "Plano dividido del reel: la foto de la noticia arriba y el host abajo con la tarjeta del titular.",
      "url": "https://axis.efeonce.org/media/glitch/reel-noticia.webp"
    },
    {
      "family": "video",
      "id": "reel-drop",
      "name": "Reel · Glitch Drop",
      "image": "reel-drop.webp",
      "w": 1080,
      "h": 1920,
      "status": "aprobada",
      "format": "Reel 1080×1920",
      "rule": "El POV en una tarjeta bajo la cara, con la manzana (la única de la pantalla).",
      "alt": "Host a cámara con la tarjeta del Glitch Drop debajo de la cara.",
      "url": "https://axis.efeonce.org/media/glitch/reel-drop.webp"
    },
    {
      "family": "video",
      "id": "reel-cierre",
      "name": "Reel · tarjeta final",
      "image": "reel-cierre.webp",
      "w": 1080,
      "h": 1920,
      "status": "aprobada",
      "format": "Reel 1080×1920",
      "rule": "Pantalla completa de 3 s; espejo de la apertura para que el reel empalme en loop.",
      "alt": "Tarjeta final vertical: los puntos y la manzana, «El micrófono se cierra» y «Sigue a Glitch».",
      "url": "https://axis.efeonce.org/media/glitch/reel-cierre.webp"
    },
    {
      "family": "video",
      "id": "reel-kit",
      "name": "Kit de overlays del reel",
      "image": "reel-kit.webp",
      "w": 1200,
      "h": 1188,
      "status": "aprobada",
      "alt": "Hoja del kit de overlays del reel: ocho piezas con fondo transparente y su posición y momento.",
      "url": "https://axis.efeonce.org/media/glitch/reel-kit.webp"
    }
  ],
  "never": [
    "Usar la manzana, el verde Glitch, los bytes, Guttery o la cabecera «EDICIÓN #N» en una pieza de Efeonce.",
    "Dos esferas en la misma pieza o pantalla (manzana + esfera o lente).",
    "El verde como texto, borde o separador sobre fondo claro.",
    "La falla en bytes sobre un rostro; un overlay sobre la cara del host o sobre la interfaz de la app.",
    "Una órbita decorativa que no rodea, no mide y no enfoca nada.",
    "La URL como texto o la burbuja URL en Glitch (firma y burbuja nunca a la vez).",
    "Descargar y subir clips o fotos de terceros: se embeben o se licencian, siempre con crédito.",
    "Todo el titular en Bricolage 800: sin contraste de pesos se pierde la voz.",
    "La transición de la manzana en bytes (entre piezas o entre escenas) fuera de Glitch: es exclusiva de Glitch.",
    "La falla sobre el logo de Efeonce: la firma nunca se distorsiona, sólo se corta.",
    "Un arco suelto girando como loader: el «al aire» es una órbita, la manzana recorre el anillo con su estela.",
    "Editar el texto dentro del .mov o rehacer la animación a mano: el texto sale del archivo de edición y se regenera.",
    "Usar el sonido de Glitch fuera de Glitch, mezclarlo con el kit sonoro de Efeonce o aplicar la falla sonora a la voz del host."
  ],
  "composition": {
    "status": "Flujo aceptado por el operador (2026-09-27). Hoy: las piezas fijas se componen en el Artifact Composer de Greenhouse (catálogos glitch-carousel, glitch-stills y glitch-overlays, TASK-1923; desde el 2026-09-28 también el Glitch Flash) y el motion aprobado se produce en el repo taller efeonce-brand-workshop con HyperFrames (TASK-1924: ver la sección Motion). Los valores salen del token glitchLine y las reglas del contrato efeonce.glitch-line (pnpm glitch:resolve).",
    "steps": [
      {
        "step": "Contenido",
        "what": "La edición sale del pipeline editorial: número, fechas, tesis y ocho noticias (sección, titular, medio, foto con crédito y licencia, POV: remate y porqué)."
      },
      {
        "step": "Manifiesto",
        "what": "Un manifiesto de edición en datos. Los agentes llenan campos; nunca eligen coordenadas ni dibujan a mano."
      },
      {
        "step": "Selector",
        "what": "La plantilla de portada la elige la regla de rotación, no el autor."
      },
      {
        "step": "Composición",
        "what": "Artifact Composer de Greenhouse, catálogos glitch-carousel, glitch-stills y glitch-overlays: portadas, láminas, contraportada, banners del blog, portada del reel y miniatura. PNG por lámina y PDF del carrusel."
      },
      {
        "step": "Movimiento y sonido",
        "what": "Los overlays del reel y del 16:9 como composiciones HyperFrames (HTML + GSAP), renderizados por edición a video con alfa para el editor, cada uno con su WAV (sonido aprobado, versión b) sincronizado cuadro a cuadro."
      },
      {
        "step": "Revisión y publicación",
        "what": "QA humano, LinkedIn vía Metricool, blog vía WordPress; el editor monta los overlays sobre la toma del host."
      }
    ]
  },
  "motion": {
    "status": "Aprobado por el operador el 2026-09-27, con su sonido (versión b): cada pieza se entrega con su WAV al lado.",
    "exclusive": "Todo el motion de esta sección es sólo de Glitch. La transición de la manzana en bytes nunca se usa en piezas de Efeonce ni de clientes.",
    "engine": {
      "where": "efeoncepro/efeonce-brand-workshop → tools/glitch-motion",
      "stack": "HyperFrames 0.6.69 (HTML + GSAP 3.14.2 → video) · curvas y sobrepasos de @efeoncepro/axis-tokens (efeonceGraphicLine.motion) · firma de @efeoncepro/axis-brand-assets",
      "output": "ProRes 4444 con transparencia (.mov), 30 fps, sin audio. Premiere y After Effects lo abren directo.",
      "determinism": "Determinista: sin reloj, sin azar vivo, sin red. Mismo archivo de edición → mismos cuadros.",
      "delivery": "OneDrive: Alineación/5. Contenidos/09. Glitch/Motion/piloto/ (v2/, kit/, kit-transicion-bytes/, transiciones/, transiciones/heroe/).",
      "manifests": "Cada corrida deja corridas/<run>/manifiesto.json en el repo taller: sha256 de cada archivo, verificaciones, versiones y dónde se entregó."
    },
    "clips": [
      {
        "id": "apertura-cierre-reel",
        "name": "Tarjeta final → apertura (reel)",
        "video": "apertura-cierre-reel",
        "w": 540,
        "h": 960,
        "status": "aprobada",
        "caption": "El bucle: la tarjeta final termina en el primer cuadro de la apertura. Apertura 4 s, tarjeta final 3 s.",
        "url": "https://axis.efeonce.org/media/glitch/motion/apertura-cierre-reel.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/apertura-cierre-reel.webp"
      },
      {
        "id": "apertura-cierre-vlog",
        "name": "Tarjeta final → apertura (vlog)",
        "video": "apertura-cierre-vlog",
        "w": 960,
        "h": 540,
        "status": "aprobada",
        "caption": "Lo mismo en 16:9: el botón invita al blog.",
        "url": "https://axis.efeonce.org/media/glitch/motion/apertura-cierre-vlog.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/apertura-cierre-vlog.webp"
      },
      {
        "id": "kit-animatic-reel",
        "name": "Kit de overlays en una edición (reel)",
        "video": "kit-animatic-reel",
        "w": 540,
        "h": 960,
        "status": "aprobada",
        "caption": "Animatic de 45 s: dónde y cuándo entra cada pieza sobre la toma del host (toma de prueba).",
        "url": "https://axis.efeonce.org/media/glitch/motion/kit-animatic-reel.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/kit-animatic-reel.webp"
      },
      {
        "id": "kit-animatic-vlog",
        "name": "Kit de overlays en una edición (vlog)",
        "video": "kit-animatic-vlog",
        "w": 960,
        "h": 540,
        "status": "aprobada",
        "caption": "El mismo orden en 16:9.",
        "url": "https://axis.efeonce.org/media/glitch/motion/kit-animatic-vlog.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/kit-animatic-vlog.webp"
      },
      {
        "id": "lower-third-orbita",
        "name": "Lower third «al aire»: la órbita",
        "video": "lower-third-orbita",
        "w": 600,
        "h": 220,
        "status": "aprobada",
        "caption": "La manzana es la esfera: recorre el anillo al 28 % con la estela de 50°, siempre derecha.",
        "url": "https://axis.efeonce.org/media/glitch/motion/lower-third-orbita.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/lower-third-orbita.webp"
      },
      {
        "id": "transicion-piezas-reel",
        "name": "Transición de piezas: la manzana en bytes",
        "video": "transicion-piezas-reel",
        "w": 540,
        "h": 960,
        "status": "aprobada",
        "caption": "La manzana nace, se rompe en bytes que cubren la tarjeta y se funden en ella; a la salida vuelven a la manzana.",
        "url": "https://axis.efeonce.org/media/glitch/motion/transicion-piezas-reel.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/transicion-piezas-reel.webp"
      },
      {
        "id": "transicion-escenas-vlog",
        "name": "Transición entre escenas (desde el centro, sobre video)",
        "video": "transicion-escenas-vlog",
        "w": 960,
        "h": 540,
        "status": "aprobada",
        "caption": "La escena B entra por los bytes con sus píxeles reales; destellos verde, gris y blanco en el borde.",
        "url": "https://axis.efeonce.org/media/glitch/motion/transicion-escenas-vlog.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/transicion-escenas-vlog.webp"
      },
      {
        "id": "transicion-escenas-reel",
        "name": "Transición entre escenas (desde la marca)",
        "video": "transicion-escenas-reel",
        "w": 540,
        "h": 960,
        "status": "aprobada",
        "caption": "El barrido nace donde vive el wordmark de Glitch.",
        "url": "https://axis.efeonce.org/media/glitch/motion/transicion-escenas-reel.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/transicion-escenas-reel.webp"
      },
      {
        "id": "transicion-heroe-vlog",
        "name": "Transición héroe (vlog)",
        "video": "transicion-heroe-vlog",
        "w": 960,
        "h": 540,
        "status": "aprobada",
        "caption": "Los píxeles de A se desprenden en bytes, vuelan y se rearman como B.",
        "url": "https://axis.efeonce.org/media/glitch/motion/transicion-heroe-vlog.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/transicion-heroe-vlog.webp"
      },
      {
        "id": "transicion-heroe-reel",
        "name": "Transición héroe (reel)",
        "video": "transicion-heroe-reel",
        "w": 540,
        "h": 960,
        "status": "aprobada",
        "caption": "Para momentos especiales: abrir el vlog o entrar a la noticia principal.",
        "url": "https://axis.efeonce.org/media/glitch/motion/transicion-heroe-reel.mp4",
        "poster": "https://axis.efeonce.org/media/glitch/motion/transicion-heroe-reel.webp"
      }
    ],
    "opening": {
      "apertura": "Tres puntos que escriben → la cámara se acerca → el tercero tiembla y se rompe en bytes → los bytes arman la manzana fila por fila → impacto con aplaste, doble onda y halo → «El micrófono» tecleado → «se abre» de golpe con falla en franjas → «Glitch #N» (el número de la edición se decodifica) → corte con falla y el fondo se va (queda transparente).",
      "cierre": "Entra desde transparente → «se cierra.» de golpe → la muletilla de la edición se escribe (Guttery; varía en cada edición, `glitchLine.motion.closer`) → botón y firma → corte con falla (la firma sólo se corta) → la manzana tiembla, implosiona en bytes y vuelve a ser el tercer punto.",
      "hits": [
        {
          "piece": "Apertura",
          "frames": [
            24,
            48,
            69
          ],
          "meaning": "quiebre del punto · la manzana completa (cuadro de sincronía) · «se abre»"
        },
        {
          "piece": "Tarjeta final",
          "frames": [
            6,
            57,
            74
          ],
          "meaning": "«se cierra.» · el corte · el punto vuelve"
        }
      ]
    },
    "kit": [
      {
        "piece": "cabecera-1 · -2 · -3",
        "seconds": "2 · 1,2 · 1,2",
        "zone": "reel y 250 · vlog y 60",
        "what": "«NOTICIA n / 3» y el wordmark. Avanza con falla y el número se decodifica. Trae un PNG «_fijo» para sostenerla."
      },
      {
        "piece": "cabecera-salida",
        "seconds": "0,4",
        "zone": "igual",
        "what": "Corte con falla al terminar las noticias."
      },
      {
        "piece": "lower-third-host",
        "seconds": "5",
        "zone": "reel y 1150 · vlog y 818",
        "what": "«AL AIRE · GLITCH #N», Julio Reyes, cargo. La órbita con la manzana. Sólo en la primera aparición."
      },
      {
        "piece": "lower-third-invitado",
        "seconds": "5",
        "zone": "igual",
        "what": "«INVITADO · GLITCH #N», nombre, rol y empresa. Sólo si hay invitado."
      },
      {
        "piece": "noticia-1 · -2 · -3",
        "seconds": "5",
        "zone": "reel y 1300 · vlog y 776",
        "what": "Sección + IA, el titular tal como lo cuentan los medios y la fuente."
      },
      {
        "piece": "fuente-N",
        "seconds": "5",
        "zone": "reel arriba (0–640) · vlog izquierda (0–1100)",
        "what": "Plano dividido: la foto en duotono navy con el borde que se derrite en bytes y su crédito. El host se reencuadra (reel: cabeza ~y 1050; vlog: a la derecha)."
      },
      {
        "piece": "drop",
        "seconds": "4 (4,5 con bytes)",
        "zone": "reel y 1150 · vlog pantalla completa",
        "what": "GLITCH DROP: la frase liviana se teclea, el remate entra de golpe, la manzana con su onda (la única de la pantalla)."
      },
      {
        "piece": "cta",
        "seconds": "4",
        "zone": "reel y 1250 · vlog y 872",
        "what": "La muletilla de la edición (un slot, nunca texto fijo: `glitchLine.motion.closer`) y el botón."
      }
    ],
    "zones": "Reel: interfaz de la app arriba 0–220 y abajo desde 1500; botones desde x 940; la cara del host nunca se tapa. Cada .mov es un cuadro completo ya ubicado: se suelta en 0,0.",
    "pieceTransition": "Opcional («transition»: \"bytes\" en el archivo de edición): la manzana nace en la esquina de la pieza, se rompe en bytes que barren el rectángulo y se funden en ella; a la salida, al revés. Recomendación: tarjetas y Drop; la cabecera y el lower third conservan su entrada.",
    "sceneTransition": {
      "what": "Paquete de dos capas para cualquier corte entre imágenes o videos: MÁSCARA (bytes blancos que llenan el cuadro: track matte de alfa) + CAPA de acento (la manzana en el origen y los destellos). Misma grilla y mismos tiempos.",
      "variants": "Orígenes: centro · izquierda · marca (donde vive el wordmark). Duraciones: rápida 0,5 s · normal 0,8 s. Reel y vlog.",
      "premiere": [
        "Escena A en V1. Escena B en V2, empezando donde arranca la transición.",
        "La máscara en V3, alineada al inicio de B, con el ojo apagado (no se ve: sólo recorta).",
        "A la escena B: «Track Matte Key» → Matte: Video 3 → Composite using: Matte Alpha.",
        "Corta B donde termina la máscara y quítale el efecto al resto (desde ahí ya se ve completa).",
        "La capa en V4, alineada al mismo inicio."
      ],
      "afterEffects": "La máscara sobre B y B con Track Matte «Alpha Matte»; la capa arriba de todo.",
      "hero": "Versión héroe (1,2 s): los píxeles de A vuelan y se rearman como B. Se genera por corte con los dos clips y el segundo del corte, y se entrega renderizada para insertarla entre A y B.",
      "rule": "La falla nunca sobre un rostro: úsala entre imágenes de noticias, b-roll y pantallas. Hacia o desde la toma del host a cámara, corte seco o la transición de tarjeta."
    },
    "human": [
      "Baja la carpeta de la edición desde OneDrive (Motion/…). Cada .mov trae transparencia: no necesitas keying.",
      "Proyecto a 30 fps. Suelta cada overlay en 0,0 de la secuencia: ya viene ubicado en su zona.",
      "Apertura al inicio; tarjeta final al cierre. El sonido aprobado viene aparte: un WAV por .mov, se suelta en 0 junto a él (sección Sonido); la música (intro, cortina, salida y la cama bajo las noticias) también, con sus puntos de entrada (sección Música).",
      "La cabecera entra con «cabecera-1» y se sostiene con su PNG «_fijo» hasta la siguiente noticia.",
      "El lower third va sólo la primera vez que aparece cada persona.",
      "En plano dividido reencuadra al host (reel: más abajo; vlog: a la derecha) para que la foto no le tape la cara.",
      "Entre escenas usa el paquete de transición (pasos de Premiere arriba); nunca sobre tu toma a cámara.",
      "¿Un texto cambió? No lo edites en el video: pide la regeneración desde el archivo de edición (≈4 min el kit completo).",
      "Voz, si se suma locución: una persona con español latinoamericano neutro."
    ],
    "agent": {
      "install": "NODE_AUTH_TOKEN=$(gh auth token) pnpm -C ../efeonce-brand-workshop install",
      "commands": [
        {
          "cmd": "pnpm -C ../efeonce-brand-workshop --filter glitch-motion doctor",
          "what": "Revisa HyperFrames, Chrome, FFmpeg, fuentes y assets."
        },
        {
          "cmd": "… render -- --run <run> --edition 17 [--deliver \"<carpeta>\"]",
          "what": "Apertura y tarjeta final (reel y vlog), verificación del bucle y manifiesto."
        },
        {
          "cmd": "… kit -- --run <run> --edition-file <edicion.json> --assets \"<imágenes>\" [--transition bytes] [--only a,b] [--skip-render] [--deliver \"<carpeta>\"]",
          "what": "Todo el kit de overlays desde el archivo de edición, hoja de piezas y animatic."
        },
        {
          "cmd": "… transiciones -- --run <run> [--a <escena>] [--b <escena>] [--deliver \"<carpeta>\"]",
          "what": "Paquete de transición (máscara + capa) y demos."
        },
        {
          "cmd": "… heroe -- --run <run> --a <archivo>[@seg] --b <archivo>[@seg] [--origin centro|izquierda|marca]",
          "what": "Transición héroe para un corte concreto."
        },
        {
          "cmd": "… test",
          "what": "Pruebas del paquete (registro de timelines, determinismo, sin red, datos en pantalla)."
        }
      ],
      "editionFile": {
        "example": "tools/glitch-motion/ejemplos/edicion-17.ejemplo.json",
        "fields": [
          "edition",
          "nextEdition",
          "host { name, role }",
          "guest { name, role } | null",
          "news[3] { section, headline, shortHeadline, source, image { file, credit } | null }",
          "drop { newsIndex, lite, bold }",
          "cta { reel, vlog }",
          "transition: \"basic\" | \"bytes\" (opcional)"
        ],
        "source": "Hoy lo llena el equipo o el agente; mañana lo produce el dominio de ediciones (TASK-1442)."
      },
      "checks": "Cada .mov: ProRes 4444 con alfa, tamaño, 30 fps, cuadros exactos, sin audio, alfa de entrada y salida; apertura/cierre: bucle exacto. Una FALLA bloquea la entrega.",
      "never": [
        "Animar a mano o escribir coordenadas: se llenan datos y se corre el comando.",
        "Binarios o rutas de máquina en git: los videos van a OneDrive y el manifiesto guarda su sha256.",
        "Usar este motion o la transición de bytes fuera de Glitch.",
        "Entregar con una verificación en FALLA.",
        "Publicar una edición sin la revisión del operador: el sistema está aprobado, cada edición se revisa antes de salir."
      ]
    }
  },
  "sound": {
    "status": "aprobada",
    "version": "B (más punch)",
    "approved": "Operador (Julio Reyes), 2026-09-27: «La b me encanta más. Sus sonidos están aprobados». La A (contenida) quedó descartada.",
    "exclusive": "Este sonido es sólo de Glitch. No es parte de la identidad sonora de Efeonce ni se usa en piezas de Efeonce, de su familia (Globe, Wave, Reach) ni de clientes; tampoco se mezcla con el kit sonoro de Efeonce.",
    "idea": {
      "name": "El sonido de Efeonce, con un bug",
      "text": "Como la imagen —dos puntos limpios, el tercero se rompe en bytes y se rearma como la manzana—, el sonido toma el motivo de Efeonce, Mi · Mi · Mi → La, y hace fallar la tercera nota: se rompe en bytes y se rearma como la manzana, que da el único golpe grave (La en campana, el timbre de Growth, la línea de Glitch). Es diseño sonoro amarrado cuadro a cuadro al motion; la música (tema y cama bajo la noticia) va aparte, en la sección Música.",
      "macro": "El video entero es el motivo en cámara lenta: cada cabecera «NOTICIA n/3» suena en Mi —la 1 y la 2 limpias, la 3 falla— y el Glitch Drop es La, la manzana, el segundo golpe grave del video."
    },
    "principles": [
      {
        "rule": "La falla está afinada",
        "why": "Todo en La mayor: Mi y La, bytes en la pentatónica aguda. La falla suena a marca, nunca a ruido cualquiera."
      },
      {
        "rule": "Radio actual, sin nostalgia",
        "why": "Cortes de búfer, granos y reducción de resolución dosificada. Nunca chiptune, módem, máquina de escribir, vinilo, estática larga, zumbidos láser ni voz robótica."
      },
      {
        "rule": "Un golpe grave por manzana",
        "why": "La manzana es la única que golpea grave (apertura y Drop). Los golpes de texto usan un cuerpo medio."
      },
      {
        "rule": "Nunca sobre la voz del host",
        "why": "Espejo sonoro de «la falla nunca sobre un rostro»: la voz no se procesa, no tartamudea ni se robotiza."
      },
      {
        "rule": "La firma de Efeonce no suena",
        "why": "Y nunca recibe la falla: sólo se corta."
      },
      {
        "rule": "El silencio también es voz",
        "why": "El corte es silencio digital en seco. Nunca whooshes ni subidas de tráiler: el barrido de las transiciones es una lluvia de clics, no un soplo."
      },
      {
        "rule": "Hacia o desde el host, nada",
        "why": "Ahí va corte seco en la imagen y ningún sonido de transición."
      }
    ],
    "cues": [
      {
        "piece": "Apertura",
        "frame": "f2 · +0,1 · +0,2 s",
        "event": "Los tres puntos escriben",
        "sound": "Tres notas Mi breves y puras."
      },
      {
        "piece": "Apertura",
        "frame": "f13 → f24",
        "event": "El tercer punto se hincha y tiembla",
        "sound": "El Mi salta de altura cuadro a cuadro y pierde resolución."
      },
      {
        "piece": "Apertura",
        "frame": "f24 (0,8 s) · golpe 1",
        "event": "El punto se rompe en bytes",
        "sound": "Repetición de búfer que se acelera, destello y desgarro estéreo."
      },
      {
        "piece": "Apertura",
        "frame": "f24 → f47",
        "event": "Los bytes flotan y arman la manzana",
        "sound": "Granos afinados que suben de altura fila por fila y recuperan resolución."
      },
      {
        "piece": "Apertura",
        "frame": "f48 (1,6 s) · golpe 2",
        "event": "La manzana (cuadro de sincronía)",
        "sound": "El golpe grave con la campana en La, halo breve y destello; eco en f52 que vuelve con la falla."
      },
      {
        "piece": "Apertura",
        "frame": "f56 → f68",
        "event": "«El micrófono» se teclea",
        "sound": "Ticks digitales mínimos, uno por letra."
      },
      {
        "piece": "Apertura",
        "frame": "f69 (2,3 s) · golpe 3",
        "event": "«se abre» cae de golpe",
        "sound": "Clic del canal del micrófono, cuerpo medio y desgarro. Entra el aire del estudio."
      },
      {
        "piece": "Apertura",
        "frame": "f80 → f86",
        "event": "«#N» se decodifica (el número de la edición)",
        "sound": "Ticks al azar que se asientan en La."
      },
      {
        "piece": "Apertura",
        "frame": "f105 · f108",
        "event": "Corte con falla",
        "sound": "Desgarro de tres cuadros y silencio digital en seco (−180 dBFS)."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f6",
        "event": "«se cierra.» cae de golpe",
        "sound": "Clic del canal y el aire del estudio se corta."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f14 → f26",
        "event": "La muletilla en Guttery",
        "sound": "Trazo de plumón: el único sonido orgánico."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f26 → f34",
        "event": "La firma de Efeonce",
        "sound": "Muda."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f57",
        "event": "Corte con falla",
        "sound": "Desgarro de tres cuadros."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f60 → f74",
        "event": "La manzana tiembla e implosiona",
        "sound": "La tiembla; los bytes vuelven bajando de altura y perdiendo resolución, con la campana al revés."
      },
      {
        "piece": "Tarjeta final",
        "frame": "f74",
        "event": "El tercer punto vuelve",
        "sound": "Mi con destello; empalma en bucle con la apertura."
      }
    ],
    "kit": [
      {
        "file": "kit/cabecera-1.wav · cabecera-2.wav",
        "sound": "Noticia 1 y 2: el Mi limpio cuando se llena el segmento; el número decodifica con ticks."
      },
      {
        "file": "kit/cabecera-3.wav",
        "sound": "Noticia 3: el Mi que falla (tartamudea)."
      },
      {
        "file": "kit/cabecera-salida.wav",
        "sound": "Desgarro de salida."
      },
      {
        "file": "kit/lower-third-host.wav",
        "sound": "Se abre con bytes que suben por la escala; la manzana nace en la órbita con un tintineo agudo (no es un golpe); la estela se dibuja como un deslizamiento de Mi a La; la etiqueta se teclea; el nombre cae con un clic liviano; sale con falla y bytes que bajan."
      },
      {
        "file": "kit/lower-third-invitado.wav",
        "sound": "La misma entrada y salida; el punto hueco nace y late con tres ticks suaves."
      },
      {
        "file": "kit/noticia.wav · fuente.wav",
        "sound": "Tick de entrada, bytes, tecleo del titular y tick de la fuente; la foto entra y sale con bytes."
      },
      {
        "file": "kit/drop.wav",
        "sound": "El remate cae de golpe y la manzana da el segundo golpe grave del video, con su eco."
      },
      {
        "file": "kit/cta.wav",
        "sound": "Trazo de plumón (Guttery) y el tick del botón."
      },
      {
        "file": "kit/noticia-bytes.wav · drop-bytes.wav",
        "sound": "Con la transición «manzana en bytes»: la manzana nace en la esquina, se rompe, los bytes barren la pieza subiendo y, a la salida, vuelven bajando y la manzana se va."
      }
    ],
    "transitions": {
      "what": "Cada transición entre escenas tiene su pista, calculada desde la misma programación de celdas que la imagen (schedule() de transitions.mjs: 510 celdas en vlog, 576 en reel). La manzana suena en el origen y se rompe cuando se abre la primera celda; el barrido es una lluvia de micro-clics, uno por celda, que viaja en estéreo con ellas; los destellos verdes, grises y blancos son bytes afinados.",
      "files": "masters/transiciones/<reel|vlog>/glitch-transicion-<formato>-<centro|izquierda|marca>-<rapida|normal>.wav y …-centro-heroe.wav",
      "hero": "Héroe (1,2 s): la manzana se rompe con un tartamudeo, los bytes despegan con un deslizamiento y llegan afinados, subiendo, mientras se arma la escena B."
    },
    "levels": "La apertura fija la escala: el golpe de la manzana en −1 dBFS de pico (≈ −19 LUFS, casi todo transiente) y todas las pistas usan la misma ganancia; el golpe no se comprime. La voz del host va encima (−14 LUFS video, −16 podcast); los efectos quedan debajo y sin graves, salvo la manzana.",
    "observation": "Medido por la sesión de motion: en B, el golpe del cuadro 74 de la tarjeta final (el tercer punto que vuelve) queda más tapado que en A. No bloquea.",
    "production": {
      "engine": "Síntesis propia y determinística (sin muestras ni modelos): mismo comando, mismo archivo, byte a byte.",
      "where": "Repo taller efeoncepro/efeonce-brand-workshop (2d411b8): el diseño en tools/glitch-motion/src/sound.mjs y las primitivas de síntesis en tools/brand-sound. La copia de greenhouse-eo ai-generations/2026-09-26_branding-sonoro/motor es histórica. Migración fiel: los WAV de la versión b salen idénticos byte a byte.",
      "command": "pnpm -C ../efeonce-brand-workshop --filter glitch-motion {render|kit|transiciones|heroe} -- --run <corrida> [--sound b|a|off] — cada comando deja el WAV junto a cada .mov (mismo nombre, duración verificada) y lo monta en las vistas previas.",
      "timing": "Los tiempos se leen en vivo del código del motion: TIMING (pieces.mjs), KIT_TIMING, APPLE_BYTES y ANIMATIC (overlays.mjs) y schedule() (transitions.mjs). Si cambia el motion, el sonido se mueve con él al volver a correr el comando."
    },
    "editor": [
      "Baja la carpeta aprobada: OneDrive Alineación/5. Contenidos/09. Glitch/Motion/piloto/sonido-propuesta/b/ (o desde este bucket, masters/).",
      "Cada WAV se suelta en 0 junto a su .mov, en una pista de audio: mismo nombre, misma duración. El mismo audio sirve para reel y vlog (las transiciones tienen pista por formato).",
      "Transiciones entre escenas: alinea el WAV al mismo inicio que la máscara y la capa.",
      "La voz del host va encima; nunca le apliques la falla. Hacia o desde la toma del host: corte seco, sin sonido de transición.",
      "¿Algo desfasado? Revisa que el WAV empiece en el mismo cuadro que su .mov. Si cambió el motion, pide el sonido de nuevo: no edites los WAV a mano."
    ],
    "agent": {
      "read": "Lee sound en /references/glitch.json: cada archivo trae url, sha256, duración, LUFS y pico.",
      "steps": [
        "Confirma que la pieza es de Glitch (franchise: glitch). Si no, detente: este sonido no aplica.",
        "Por cada .mov del kit o transición, toma su WAV homónimo de sound.assets y verifica el sha256.",
        "Colócalo en 0 junto a su .mov (transiciones: al inicio de la máscara y la capa).",
        "La voz del host encima y limpia; nivela al destino (−14 LUFS video, −16 podcast, pico −1 dBFS) sin comprimir el golpe."
      ],
      "never": [
        "Usar este sonido fuera de Glitch o mezclarlo con el kit sonoro de Efeonce.",
        "Regenerar o retocar los WAV a mano: si algo cambia, se corre el motor.",
        "Aplicar la falla sonora a la voz del host o poner sonido de transición hacia o desde el host.",
        "Agregar whooshes o subidas de tráiler, o poner bajo las noticias una música distinta de la cama aprobada (sección Música).",
        "Usar la versión A: fue descartada."
      ]
    },
    "media": [
      {
        "id": "glitch-bucle-16x9",
        "name": "Tarjeta final → apertura, con sonido (16:9)",
        "w": 1280,
        "h": 720,
        "caption": "El bucle de 7 s: se cierra el micrófono, la manzana implosiona, vuelven los puntos y el micrófono se abre.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-16x9.webp"
      },
      {
        "id": "glitch-bucle-9x16",
        "name": "Tarjeta final → apertura, con sonido (9:16)",
        "w": 540,
        "h": 960,
        "caption": "El mismo bucle en el reel.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-9x16.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-9x16.webp"
      },
      {
        "id": "glitch-edicion-16x9",
        "name": "Una edición completa, con sonido",
        "w": 1280,
        "h": 720,
        "caption": "Animatic de 45 s con el kit sonorizado: Mi en cada cabecera (la 3 falla) y La en el Drop. Sin voz: entre golpes queda el aire del estudio, donde entra el host.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-edicion-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-edicion-16x9.webp"
      },
      {
        "id": "glitch-lower-third-bytes-16x9",
        "name": "Lower third y transición de bytes, con sonido",
        "w": 1280,
        "h": 720,
        "caption": "«AL AIRE» sobre el host, y la tarjeta y el Drop con la transición «manzana en bytes».",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-lower-third-bytes-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-lower-third-bytes-16x9.webp"
      },
      {
        "id": "glitch-transicion-centro-16x9",
        "name": "Transición entre escenas desde el centro",
        "w": 1280,
        "h": 720,
        "caption": "0,8 s: la lluvia de clics nace en el centro y se abre con el barrido.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-centro-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-centro-16x9.webp"
      },
      {
        "id": "glitch-transicion-izquierda-16x9",
        "name": "Transición entre escenas desde la izquierda",
        "w": 1280,
        "h": 720,
        "caption": "El sonido viaja de izquierda a derecha con las celdas.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-izquierda-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-izquierda-16x9.webp"
      },
      {
        "id": "glitch-transicion-marca-16x9",
        "name": "Transición entre escenas desde la marca",
        "w": 1280,
        "h": 720,
        "caption": "Nace arriba a la derecha, donde vive el wordmark.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-marca-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-marca-16x9.webp"
      },
      {
        "id": "glitch-transicion-heroe-16x9",
        "name": "Transición héroe",
        "w": 1280,
        "h": 720,
        "caption": "1,2 s: los bytes despegan y llegan afinados, subiendo, mientras se arma la escena B.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-heroe-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-heroe-16x9.webp"
      }
    ],
    "page": "/references/glitch/#sonido",
    "base": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1",
    "assets": [
      {
        "path": "masters/animatic.wav",
        "bytes": 13017702,
        "sha256": "f5b0cc6e073b08a13f79a8e261b14ed78ff420b1136dd156fada7e436bfa4fba",
        "durationSec": 45.2,
        "lufs": -23,
        "truePeakDbfs": -1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/animatic.wav"
      },
      {
        "path": "masters/apertura.wav",
        "bytes": 1152102,
        "sha256": "4dd350af453bb8a317a341918affb6fac7438c027abffba93bf58051d78a8d13",
        "durationSec": 4,
        "lufs": -18.8,
        "truePeakDbfs": -1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/apertura.wav"
      },
      {
        "path": "masters/bucle.wav",
        "bytes": 2016102,
        "sha256": "03c199fadeb4960a9e3c14c90dba9502ba650bc4964a515ccd527debec558ca1",
        "durationSec": 7,
        "lufs": -20.2,
        "truePeakDbfs": -1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/bucle.wav"
      },
      {
        "path": "masters/cierre.wav",
        "bytes": 864102,
        "sha256": "c9fb2d688954cd98b3e7f6b10353ba9a9afdb25e6353121e062a4267d5bc46cd",
        "durationSec": 3,
        "lufs": -24.6,
        "truePeakDbfs": -7,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/cierre.wav"
      },
      {
        "path": "masters/kit/cabecera-1.wav",
        "bytes": 576044,
        "sha256": "b94b75ee02c681cf36d4a5cd0b0cf34393954cacc68f39ab371da5a6eb845332",
        "durationSec": 2,
        "lufs": -32.9,
        "truePeakDbfs": -17.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/cabecera-1.wav"
      },
      {
        "path": "masters/kit/cabecera-2.wav",
        "bytes": 345644,
        "sha256": "421c61bd14a034a4f15af4af9ce393216014c03d4b60a0d605fe058418b6c95b",
        "durationSec": 1.2,
        "lufs": -33,
        "truePeakDbfs": -17.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/cabecera-2.wav"
      },
      {
        "path": "masters/kit/cabecera-3.wav",
        "bytes": 345644,
        "sha256": "940f765b621a3e6a385aa520581155b914694f16e3711bcecf266418b3b5879d",
        "durationSec": 1.2,
        "lufs": -28.2,
        "truePeakDbfs": -17,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/cabecera-3.wav"
      },
      {
        "path": "masters/kit/cabecera-salida.wav",
        "bytes": 115244,
        "sha256": "5e0151137a532307c8a2abff71dd026a1c23e34485596b4002c375d767f73cf1",
        "durationSec": 0.4,
        "lufs": -38.6,
        "truePeakDbfs": -23.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/cabecera-salida.wav"
      },
      {
        "path": "masters/kit/cta.wav",
        "bytes": 1152044,
        "sha256": "47a502668a8201a8008941df88886d05cde88166bd64054c235602fabbbfa0ff",
        "durationSec": 4,
        "lufs": -39.8,
        "truePeakDbfs": -21.7,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/cta.wav"
      },
      {
        "path": "masters/kit/drop-bytes.wav",
        "bytes": 1296044,
        "sha256": "087ad3892be4bf78051f8e85be6ee238738d9de084068d73f135341b913db3d2",
        "durationSec": 4.5,
        "lufs": -19.9,
        "truePeakDbfs": -1.4,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/drop-bytes.wav"
      },
      {
        "path": "masters/kit/drop.wav",
        "bytes": 1152044,
        "sha256": "8676ecc645eed559063e7034b4e92848697db7357e4c7ba1eec6cf607e9dcec9",
        "durationSec": 4,
        "lufs": -17.7,
        "truePeakDbfs": -1.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/drop.wav"
      },
      {
        "path": "masters/kit/fuente.wav",
        "bytes": 1440044,
        "sha256": "be80110bc49f4a5758dc4dca9a819b2e5cab03c22de64bd2c027030451e8f755",
        "durationSec": 5,
        "lufs": -39.4,
        "truePeakDbfs": -23.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/fuente.wav"
      },
      {
        "path": "masters/kit/lower-third-host.wav",
        "bytes": 1440044,
        "sha256": "c38096371a1e403f812f35f59bd1325f535529b38b2c4484aae9009aff6bc380",
        "durationSec": 5,
        "lufs": -36.4,
        "truePeakDbfs": -21.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/lower-third-host.wav"
      },
      {
        "path": "masters/kit/lower-third-invitado.wav",
        "bytes": 1440044,
        "sha256": "dcdeeabee444c8b912bd7b3459c4d0bd54a026c0e975d0f07ce80c6e182a4103",
        "durationSec": 5,
        "lufs": -40.4,
        "truePeakDbfs": -23.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/lower-third-invitado.wav"
      },
      {
        "path": "masters/kit/noticia-bytes.wav",
        "bytes": 1440044,
        "sha256": "37f7f78d31de95a009d174ac86cdb925e48a7faf1af3a3adb13ad210a9fa6fa5",
        "durationSec": 5,
        "lufs": -34,
        "truePeakDbfs": -19.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/noticia-bytes.wav"
      },
      {
        "path": "masters/kit/noticia.wav",
        "bytes": 1440044,
        "sha256": "8587a56b2b29b65feb5207e082f3c5c97f615ba137b6b12b154e8409549a1052",
        "durationSec": 5,
        "lufs": -42.5,
        "truePeakDbfs": -23.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/kit/noticia.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-centro-heroe.wav",
        "bytes": 345644,
        "sha256": "ce95ddc31c7b928c42f67c7c747bb200aa8f5e5a8fe29cf7944de6e2da73e610",
        "durationSec": 1.2,
        "lufs": -28.5,
        "truePeakDbfs": -16.4,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-centro-heroe.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-centro-normal.wav",
        "bytes": 230444,
        "sha256": "4f7d258e4c3fe76f5afda1c2a469283c20ee936f2a2431241a2474f90901c364",
        "durationSec": 0.8,
        "lufs": -27.7,
        "truePeakDbfs": -15.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-centro-normal.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-centro-rapida.wav",
        "bytes": 144044,
        "sha256": "e3010d33aa5991e91d4f1632fb4b2add5677c73634ca1965518fe901d747fde5",
        "durationSec": 0.5,
        "lufs": -28.1,
        "truePeakDbfs": -11.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-centro-rapida.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-izquierda-normal.wav",
        "bytes": 230444,
        "sha256": "c7beb7bc4669f6f0de18906e4de41e72cc53bcfe23f681ee6b5feed913435e42",
        "durationSec": 0.8,
        "lufs": -27.9,
        "truePeakDbfs": -13.4,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-izquierda-normal.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-izquierda-rapida.wav",
        "bytes": 144044,
        "sha256": "aa88ea156faf4369845f840faadb6ed9054d6406600110c0ff96220d002de085",
        "durationSec": 0.5,
        "lufs": -28.3,
        "truePeakDbfs": -11.3,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-izquierda-rapida.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-marca-normal.wav",
        "bytes": 230444,
        "sha256": "a2a098bb69612b698e044f9267b3beae6d864dbd76f67014a2979adcfb137758",
        "durationSec": 0.8,
        "lufs": -27.9,
        "truePeakDbfs": -16.1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-marca-normal.wav"
      },
      {
        "path": "masters/transiciones/reel/glitch-transicion-reel-marca-rapida.wav",
        "bytes": 144044,
        "sha256": "42c0f7601049b8520956c6f671eafc8a1b073ad8ec08f751db8b407902cf9774",
        "durationSec": 0.5,
        "lufs": -28.1,
        "truePeakDbfs": -15.1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/reel/glitch-transicion-reel-marca-rapida.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-centro-heroe.wav",
        "bytes": 345644,
        "sha256": "d835a1600b311630eec9498d2090ba4ddcb90463aef2eb8541bcd5c26e187d85",
        "durationSec": 1.2,
        "lufs": -28.5,
        "truePeakDbfs": -16.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-centro-heroe.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-centro-normal.wav",
        "bytes": 230444,
        "sha256": "92fdd2b51086b9a84b398b4b9e1278425cacfec0eaccceb0aa407e949199717a",
        "durationSec": 0.8,
        "lufs": -28,
        "truePeakDbfs": -16.1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-centro-normal.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-centro-rapida.wav",
        "bytes": 144044,
        "sha256": "fb2241238ebfd734ab264c01ded1e443f422ca6ad060ea59b31124e70d089958",
        "durationSec": 0.5,
        "lufs": -27.4,
        "truePeakDbfs": -11.6,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-centro-rapida.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-izquierda-normal.wav",
        "bytes": 230444,
        "sha256": "ea867418b52c68f6c6da4670f792ba1974df5ed88eb3046b98694af28781061a",
        "durationSec": 0.8,
        "lufs": -29,
        "truePeakDbfs": -16.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-izquierda-normal.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-izquierda-rapida.wav",
        "bytes": 144044,
        "sha256": "4620a054c72be606d375c96148bfb0f5becd5165816cd975fe128e4399b030fb",
        "durationSec": 0.5,
        "lufs": -28.2,
        "truePeakDbfs": -12,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-izquierda-rapida.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-marca-normal.wav",
        "bytes": 230444,
        "sha256": "d6c1c937fe7111b6cc62af48d71aefbc5fcb69dc3f19bac813fbeca8ee60ad4c",
        "durationSec": 0.8,
        "lufs": -28.8,
        "truePeakDbfs": -17.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-marca-normal.wav"
      },
      {
        "path": "masters/transiciones/vlog/glitch-transicion-vlog-marca-rapida.wav",
        "bytes": 144044,
        "sha256": "228deb765590189a410354229e751c4fdd27b6775e33a803f16af7eae7690eb3",
        "durationSec": 0.5,
        "lufs": -28,
        "truePeakDbfs": -10.3,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/masters/transiciones/vlog/glitch-transicion-vlog-marca-rapida.wav"
      },
      {
        "path": "web/glitch-bucle-16x9.mp4",
        "bytes": 482532,
        "sha256": "4ba52e0797f29dcbcffa9574c17f33b5db6ffd180da3baaa3eedecc8146ddb21",
        "durationSec": 7,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-16x9.mp4"
      },
      {
        "path": "web/glitch-bucle-9x16.mp4",
        "bytes": 386457,
        "sha256": "9dab127c53afad4a78b86ae8ee2aa1ac98d1cd176ded75ee23ecd4ae29c69072",
        "durationSec": 7,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-bucle-9x16.mp4"
      },
      {
        "path": "web/glitch-edicion-16x9.mp4",
        "bytes": 2640357,
        "sha256": "d7a93b5f6420f4c599922a91b63e3db6d113f21b9d3be54607c8588ec6a1e2f4",
        "durationSec": 45.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-edicion-16x9.mp4"
      },
      {
        "path": "web/glitch-lower-third-bytes-16x9.mp4",
        "bytes": 989818,
        "sha256": "c9b12b64631ee4c49a63e4a15635c428480cac5ea8a2e01a8eeaf71e262f2264",
        "durationSec": 16.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-lower-third-bytes-16x9.mp4"
      },
      {
        "path": "web/glitch-transicion-centro-16x9.mp4",
        "bytes": 596051,
        "sha256": "d95d5c69378de9b800a18f535489132f8507abbb2b7b316f0aace5c64d82c5de",
        "durationSec": 3.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-centro-16x9.mp4"
      },
      {
        "path": "web/glitch-transicion-heroe-16x9.mp4",
        "bytes": 820961,
        "sha256": "5f960cd4a41cb24e04261ceebcd4ebd42b635672e1583ca405c3beff0b2177ee",
        "durationSec": 4.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-heroe-16x9.mp4"
      },
      {
        "path": "web/glitch-transicion-izquierda-16x9.mp4",
        "bytes": 583965,
        "sha256": "c60e3cd3aa4ef14b0c2caced447ad934c0a876309621e14e3e53cdaee712b9be",
        "durationSec": 3.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-izquierda-16x9.mp4"
      },
      {
        "path": "web/glitch-transicion-marca-16x9.mp4",
        "bytes": 590067,
        "sha256": "2f2299e272808ba53a7af5e71dd0b861bca5c4fac3011f4f104f28fee37a0921",
        "durationSec": 3.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/sound/v1/web/glitch-transicion-marca-16x9.mp4"
      }
    ]
  },
  "music": {
    "status": "aprobada",
    "approved": [
      "Tema B (irreverente, desafiante): «Definitivamente la B es la decisión» (la A, experta y oscura, quedó descartada).",
      "Intro, cortina y salida: «Me parecen bien todas».",
      "La cama bajo la noticia, porque «el oyente se va a aburrir si es voz sola»: «Post-punk definitivamente»."
    ],
    "date": "2026-09-27",
    "exclusive": "Esta música es sólo de Glitch. No es parte de la identidad sonora de Efeonce ni se usa en piezas de Efeonce, de su familia (Globe, Wave, Reach) ni de clientes; tampoco se mezcla con el kit sonoro de Efeonce.",
    "replaces": "Reemplaza la regla anterior «la voz sola bajo las noticias, sin música»: ahora la noticia lleva la cama post-punk debajo, con las reglas de montaje de abajo.",
    "idea": {
      "name": "Una banda que irrumpe",
      "text": "Big beat de banda: batería breakbeat, bajo sucio con el motivo de Efeonce —Mi · Mi · Mi → La, «con un bug»— y quintas sucias. Va a 150 BPM amarrado al motion: una semicorchea son 0,1 s, tres cuadros, y todos los golpes de la apertura y de la tarjeta final caen en la grilla. La apertura y el cierre aprobados del diseño sonoro se montan intactos encima; la manzana sigue siendo el único golpe grave y el silencio digital es parte del ritmo."
    },
    "pieces": [
      {
        "id": "intro",
        "name": "Intro",
        "vlog": "glitch-intro-vlog.wav · 7,2 s",
        "podcast": "glitch-intro-podcast.wav · 13,6 s",
        "what": "Pre-roll de banda (vlog 2 compases, podcast 6) cuyo último tiempo tartamudea y corta. La apertura aprobada empieza en 3,2 s (vlog) o 9,6 s (podcast): silencio hasta el quiebre (f24), la banda entra desde el quiebre, la manzana (f48) es el drop con su grave y desde f108, silencio digital."
      },
      {
        "id": "cortina",
        "name": "Cortina entre noticias",
        "vlog": "glitch-cortina-vlog.wav · 2 s",
        "podcast": "glitch-cortina-podcast.wav · 2 s",
        "what": "Un compás con el motivo en el bajo; el último tiempo tartamudea sobre la grabación y corta en seco en 1,6 s. Se suelta 1,6 s antes de la cabecera «NOTICIA n/3» siguiente: el corte cae cuando entra."
      },
      {
        "id": "salida",
        "name": "Salida",
        "vlog": "glitch-salida-vlog.wav · 3 s",
        "podcast": "glitch-salida-podcast.wav · 7 s",
        "what": "Con la tarjeta final: la banda entra con «se cierra.» (0,2 s), corta con la falla en f57 (1,9 s) y queda sólo el cierre aprobado, con la manzana que implosiona. En el podcast siguen dos compases (el segundo tartamudea) y la respuesta en La, cortada en seco."
      },
      {
        "id": "cama",
        "name": "Cama bajo la noticia",
        "vlog": "glitch-cama-bucle.wav · 19,2 s",
        "podcast": "el mismo archivo",
        "what": "Post-punk instrumental: bajo eléctrico saturado con actitud, batería seca de sala y una guitarra rasgueada apagada en los contratiempos. Exacta a 150 BPM; bucle sin costura de 12 compases."
      }
    ],
    "bed": {
      "rules": [
        "Suena sólo bajo el relato de cada noticia: entra con la cabecera «NOTICIA n/3» (el archivo arranca en tiempo fuerte) y la corta la cortina, el Drop o la tarjeta final. Se repite en bucle lo que dure la noticia.",
        "Quince decibeles bajo la voz: con la voz a −16 LUFS (podcast), la cama a −31; con la voz a −14 (video), a −29.",
        "Ducking desde la voz: umbral 0,05 (≈ −26 dBFS), razón 3:1, ataque 15 ms, relajación 350 ms. La cama baja cuando alguien habla y sube un poco en las pausas.",
        "Sin recortar los medios de la cama para abrirle espacio a la voz: el espacio lo da el ducking.",
        "Sin falla ni tartamudeo en la cama; no va bajo el Drop (la manzana es el único grave) ni bajo la tarjeta final.",
        "Los efectos del kit (cabeceras, lower third, noticia) van encima a su nivel, sin atenuarlos."
      ],
      "lesson": "Lo «arcade» se mide: es falta de cuerpo en los medios. La intro aprobada tiene el 45 % de su energía entre 300 Hz y 3 kHz; la cama sintetizada que se rechazó tenía 13 % (un bajo profundo y un chisporroteo agudo); la post-punk aprobada, 38 %. Por eso la música de Glitch nunca es síntesis pura ni se le recortan los medios."
    },
    "levels": "Vlog y redes a −14 LUFS; podcast a −16 LUFS; pico −1 dBFS. Sólo ganancia lineal: el golpe no se comprime. La cama se entrega a −16 LUFS y se monta 15 dB bajo la voz.",
    "production": {
      "how": "Las piezas del tema son grabación reinterpretada y editada: una maqueta propia (la banda con el motivo), regrabada con Stable Audio 2.5 (audio a audio, conserva el tiempo), y después los cortes, el tartamudeo de búfer y el silencio aplicados sobre la grabación real, con la apertura y el cierre aprobados intactos. La cama se grabó desde texto con ElevenLabs Music v2.5, sin maqueta, y su bucle se arma con un script determinista.",
      "where": "greenhouse-eo → ai-generations/2026-09-26_branding-sonoro/motor/: glitch-theme.mjs (intro, cortina, salida), ai-music.ts (regrabación y cama), glitch-cama-bucle.mjs (el bucle) y master.sh (sonoridad).",
      "truth": "La fuente de verdad son los archivos de este bucket, por URL y sha256. No se regeneran con un modelo: si algo cambia, se produce una ronda nueva y la aprueba el operador."
    },
    "editor": [
      "Baja los másteres (WAV 48 kHz · 24 bits) de la tabla de abajo; usa la versión vlog en video y redes y la podcast en el audio del podcast.",
      "Intro: suéltala para que la apertura del motion empiece en 3,2 s (vlog) o 9,6 s (podcast) del WAV.",
      "Cortina: suéltala 1,6 s antes de la cabecera «NOTICIA n/3» siguiente; corta sola cuando entra.",
      "Salida: en 0 junto a la tarjeta final.",
      "La intro y la salida ya traen mezclados la apertura y el cierre del diseño sonoro: no sumes apertura.wav ni cierre.wav encima (sonarían doble). Los demás WAV del kit (cabeceras, lower third, noticia, Drop) sí van, cada uno junto a su .mov.",
      "Cama: en bucle bajo cada noticia, desde su cabecera hasta la cortina, 15 dB bajo la voz y con el ducking indicado.",
      "La voz del host va encima y limpia. ¿Algo no calza con el motion? Revisa el punto de entrada; no edites los WAV a mano."
    ],
    "agent": {
      "read": "Lee music en /references/glitch.json: cada archivo trae url, sha256, duración, LUFS y pico.",
      "steps": [
        "Confirma que la pieza es de Glitch (franchise: glitch). Si no, detente: esta música no aplica.",
        "Toma el máster por URL y verifica su sha256 antes de usarlo.",
        "Colócalo según su pieza (intro, cortina, salida o cama) con los tiempos de music.editor. La intro y la salida reemplazan a sound → apertura.wav y cierre.wav, que ya vienen dentro.",
        "Cama: 15 dB bajo la voz y ducking desde la voz; nivela al destino (−14 LUFS video, −16 podcast, pico −1 dBFS) sin comprimir el golpe."
      ],
      "never": [
        "Usar esta música fuera de Glitch o mezclarla con el kit sonoro de Efeonce.",
        "Regenerarla con un modelo, retocar los WAV o recortar los medios de la cama.",
        "Hacer música de Glitch con síntesis pura: suena arcade, y así se descartaron tres rondas.",
        "Poner la cama bajo el Drop o bajo la tarjeta final, o aplicarle la falla.",
        "Usar la dirección A ni las camas descartadas."
      ]
    },
    "discarded": "Descartadas: versiones musicales de la identidad (rondas 4 y 5), Pulso y Club (ronda 7: «no tiene el espíritu Glitch»), el tema en síntesis (ronda 8: «muy arcade; Glitch es irreverente, desafiante, experto»), la dirección A (ronda 9) y la primera cama, sintetizada (ronda 11: «tono arcade»).",
    "pending": "Integrada al taller el 2026-09-27 (efeonce-brand-workshop 2c8f36c, tools/glitch-motion/src/music.mjs): cada render baja los másteres por URL, verifica el sha256 y entrega la intro con el pre-roll animado (los tres puntos al ritmo, 3,2 s, empalme exacto con la apertura), la salida con la tarjeta final, y la cama y la cortina con el kit y su animatic. Falta: probar la mezcla con la voz real del host en una edición.",
    "media": [
      {
        "id": "glitch-noticia-con-cama-16x9",
        "name": "Una noticia con la cama debajo",
        "w": 1280,
        "h": 720,
        "caption": "Cabecera «NOTICIA 1 / 3», lower third de la noticia y el relato sobre la cama. La voz es sintética y provisional: ahí va la del host.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-noticia-con-cama-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-noticia-con-cama-16x9.webp"
      },
      {
        "id": "glitch-tema-edicion-16x9",
        "name": "El tema en una edición",
        "w": 1280,
        "h": 720,
        "caption": "Intro con la apertura, el host (aquí va su voz), la cortina que corta cuando entra «NOTICIA 2 / 3», el host y la salida con la tarjeta final.",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-tema-edicion-16x9.mp4",
        "poster": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-tema-edicion-16x9.webp"
      }
    ],
    "audio": [
      {
        "path": "web/glitch-intro-vlog.mp3",
        "name": "Intro · vlog",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-intro-vlog.mp3"
      },
      {
        "path": "web/glitch-intro-podcast.mp3",
        "name": "Intro · podcast",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-intro-podcast.mp3"
      },
      {
        "path": "web/glitch-cortina-vlog.mp3",
        "name": "Cortina",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-cortina-vlog.mp3"
      },
      {
        "path": "web/glitch-salida-vlog.mp3",
        "name": "Salida · vlog",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-salida-vlog.mp3"
      },
      {
        "path": "web/glitch-salida-podcast.mp3",
        "name": "Salida · podcast",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-salida-podcast.mp3"
      },
      {
        "path": "web/glitch-cama-3-vueltas.mp3",
        "name": "Cama · tres vueltas del bucle",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-cama-3-vueltas.mp3"
      }
    ],
    "page": "/references/glitch/#musica",
    "base": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1",
    "index": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/index.json",
    "assets": [
      {
        "path": "masters/glitch-cama-bucle.wav",
        "bytes": 5529702,
        "sha256": "7fcfe7c7efe818a05a94d99a7496bd46336af0be024a080c408cec6544c9f8f0",
        "durationSec": 19.2,
        "lufs": -16,
        "truePeakDbfs": -3.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-cama-bucle.wav"
      },
      {
        "path": "masters/glitch-cortina-podcast.wav",
        "bytes": 576102,
        "sha256": "7b8eeafe106e83d837667818a976afba7c4a00602ab96992e4ae45e761fb607d",
        "durationSec": 2,
        "lufs": -16,
        "truePeakDbfs": -11.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-cortina-podcast.wav"
      },
      {
        "path": "masters/glitch-cortina-vlog.wav",
        "bytes": 576102,
        "sha256": "f496f8ce8d3998d7111b9b509608c39f7510db664b121e0e62f18c25fe5a292b",
        "durationSec": 2,
        "lufs": -14,
        "truePeakDbfs": -9.1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-cortina-vlog.wav"
      },
      {
        "path": "masters/glitch-intro-podcast.wav",
        "bytes": 3916902,
        "sha256": "c15fe1da1ec7ac351617177e14a92f64a64c1099f0fc07d0daeff3a50a74f59b",
        "durationSec": 13.6,
        "lufs": -16.3,
        "truePeakDbfs": -3.6,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-intro-podcast.wav"
      },
      {
        "path": "masters/glitch-intro-vlog.wav",
        "bytes": 2073702,
        "sha256": "353b05bca5069ab09a40ffec663382b375e43555ecc52f1de0f39f61e0ae910d",
        "durationSec": 7.2,
        "lufs": -13.7,
        "truePeakDbfs": -1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-intro-vlog.wav"
      },
      {
        "path": "masters/glitch-salida-podcast.wav",
        "bytes": 2016102,
        "sha256": "04e31a3030798d0cac101490b77b9a653c86a92e5a63069ae8a49fa7f9fda25b",
        "durationSec": 7,
        "lufs": -16.2,
        "truePeakDbfs": -3.5,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-salida-podcast.wav"
      },
      {
        "path": "masters/glitch-salida-vlog.wav",
        "bytes": 864102,
        "sha256": "a4150f4c10b0217db1797df073b5d4de72c1eabd62589c91a4a286916b61ed61",
        "durationSec": 3,
        "lufs": -13.9,
        "truePeakDbfs": -1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/masters/glitch-salida-vlog.wav"
      },
      {
        "path": "web/glitch-cama-3-vueltas.mp3",
        "bytes": 1383597,
        "sha256": "2dbe3e70b6f2f96720450b7ad841613203ac26ca91ea3eb25e601b52a1ba5691",
        "durationSec": 57.6,
        "lufs": -16.3,
        "truePeakDbfs": -3.6,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-cama-3-vueltas.mp3"
      },
      {
        "path": "web/glitch-cortina-vlog.mp3",
        "bytes": 49581,
        "sha256": "8d4eca8c76f9492c52387cbcb11cc3e82b073e0e2ea2d7a698af3d32736bdae6",
        "durationSec": 2,
        "lufs": -14.2,
        "truePeakDbfs": -9.4,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-cortina-vlog.mp3"
      },
      {
        "path": "web/glitch-intro-podcast.mp3",
        "bytes": 327789,
        "sha256": "10a7c1cd1715c1ea082dcb6ce63491a930d7cb92421630f3fc04aa6a9b3f08b8",
        "durationSec": 13.6,
        "lufs": -16.5,
        "truePeakDbfs": -3.8,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-intro-podcast.mp3"
      },
      {
        "path": "web/glitch-intro-vlog.mp3",
        "bytes": 173997,
        "sha256": "3a1aa5497562f7c9fc5f076354c8100512f96e6944716effafc144ac989bad95",
        "durationSec": 7.2,
        "lufs": -13.9,
        "truePeakDbfs": -1.1,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-intro-vlog.mp3"
      },
      {
        "path": "web/glitch-noticia-con-cama-16x9.mp4",
        "bytes": 2008310,
        "sha256": "e682b285ab8548d992fbd416e5c97597dd156adb093be965b65c8f5cd16137df",
        "durationSec": 24,
        "lufs": -14,
        "truePeakDbfs": -1.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-noticia-con-cama-16x9.mp4"
      },
      {
        "path": "web/glitch-noticia-con-cama-16x9.webp",
        "bytes": 32854,
        "sha256": "d3524e0256b238f672e21fcdbcd38a41e694b9761bbd912054855140e9c90c22",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-noticia-con-cama-16x9.webp"
      },
      {
        "path": "web/glitch-salida-podcast.mp3",
        "bytes": 169389,
        "sha256": "961a6c6719a6c0078af95c9589d1cf061801cd2c0aa07838cc5a3097b5257d89",
        "durationSec": 7,
        "lufs": -16.4,
        "truePeakDbfs": -2.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-salida-podcast.mp3"
      },
      {
        "path": "web/glitch-salida-vlog.mp3",
        "bytes": 73197,
        "sha256": "2b87103e87737c3d320f651e495a79eb4b6d0e1237ae3d961b603bd96b120c7a",
        "durationSec": 3,
        "lufs": -14.2,
        "truePeakDbfs": -1.2,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-salida-vlog.mp3"
      },
      {
        "path": "web/glitch-tema-edicion-16x9.mp4",
        "bytes": 769154,
        "sha256": "15e888da0086a61e0c576088622885b3b29ad2b1eb6673572a06522655826416",
        "durationSec": 15.4,
        "lufs": -13.9,
        "truePeakDbfs": -0.9,
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-tema-edicion-16x9.mp4"
      },
      {
        "path": "web/glitch-tema-edicion-16x9.webp",
        "bytes": 9532,
        "sha256": "bb20bfa1e63beb661dffb60246bc395f9f12d64ead0cae53cc408172d69ef6bd",
        "url": "https://storage.googleapis.com/efeonce-group-axis-public-media/glitch/music/v1/web/glitch-tema-edicion-16x9.webp"
      }
    ]
  },
  "pending": [
    "Confirmar a cuántos fps se graba (hoy 30) y la prueba de los editores en Premiere y After Effects con una edición real.",
    "Parámetro de ritmo (entradas y salidas más rápidas o lentas sin tocar la permanencia): se puede, no está hecho.",
    "A qué piezas se aplica la transición de bytes (recomendación: tarjetas y Drop).",
    "Estilo de subtítulos para Premiere (captions) con el diseño del canvas.",
    "Textos reales de la próxima semanal (titulares, medios, fotos, invitado) para generar el kit definitivo.",
    "Autoservicio del texto: formulario en Marketing Studio que genere el archivo de edición y dispare el render.",
    "Actualizar el bloque de WordPress efeoncepro/glitch-drop al callout v2 antes de publicar la próxima semanal (TASK-1337).",
    "Ruta productiva gobernada de Greenhouse para el Glitch Flash (TASK-1921): hoy el Composer compone el Flash sólo en local."
  ],
  "resolved": [
    {
      "id": "weekly-cover-chip",
      "resolvedOn": "2026-09-28",
      "resolution": "La portada productiva, de la semanal y del Flash, usa el chip «LA NOTICIA»; «PORTADA» fue el texto de prueba.",
      "reason": "El operador pidió sustituir «PORTADA» en la versión productiva; Greenhouse ya lo aplica en sus plantillas de portada y banners (commit 24e4c72ee).",
      "tokenPath": "editions.weekly.chips.cover"
    },
    {
      "id": "edition-numbering-blog-vs-system",
      "resolvedOn": "2026-09-28",
      "resolution": "Manda el registro de ediciones publicadas (el blog de Glitch). El token guarda sólo la regla, nunca el último número ni el próximo.",
      "reason": "El blog ya publicó «Glitch #16» (2026-07-21) y «Glitch #17» (2026-07-28), así que la próxima semanal es la #18; guardar un número en el token lo dejaría desactualizado con cada edición.",
      "tokenPath": "editions.weekly.numbering"
    }
  ],
  "agentPrompt": "Estás componiendo una pieza de Glitch, el magazine semanal de Efeonce. Usa la sub-línea de Glitch sólo aquí; nunca en piezas de Efeonce. No copies valores: escribe el intent de la pieza y resuélvelo con pnpm glitch:resolve (contrato efeonce.glitch-line); el manifiesto trae los valores de glitchLine. Fondo #001a33; acento verde #6ec207; una sola manzana por pieza como punto final; titular con contraste de pesos (Bricolage 300 + 800 condensada); la falla en bytes nunca sobre un rostro; íconos de acción en Plastilina plana, nunca en volumen; firma: logo de Efeonce centrado abajo. La plantilla de portada la fija la rotación (el intent trae la de la semana anterior). Una pieza en exploración no se resuelve. Motion: nunca animes a mano; llena el archivo de edición y corre el comando del repo taller (ver motion.agent en este JSON); una verificación en FALLA bloquea la entrega; la transición de bytes es sólo de Glitch y nunca va sobre un rostro. Sonido (aprobado, versión B, sólo Glitch): usa los WAV de sound.assets por URL, verifica su sha256 y pon cada uno en 0 junto a su .mov; nunca la falla sobre la voz del host, nunca whooshes ni sonido de transición hacia o desde el host. Música (aprobada, sólo Glitch): usa los másteres de music.assets por URL y verifica su sha256; intro, cortina 1,6 s antes de la cabecera siguiente, salida con la tarjeta final y la cama post-punk en bucle bajo cada noticia, 15 dB bajo la voz y con ducking; nunca la regeneres ni le recortes los medios."
}