{
  "version": 3,
  "sources": ["../src/zelvior.js"],
  "sourcesContent": ["// Zelvior Runtime v0.3 \u2014 MIT\n// ESM source of truth; bundled to esm/cjs/iife by build.mjs\n\n  var Z = { version: '0.14.0' };\n  var enabled = false;\n  var doc = document, win = window, DE = doc.documentElement;\n  var subs = {};\n\n  var has = {\n    raf: typeof win.requestAnimationFrame === 'function',\n    ric: typeof win.requestIdleCallback === 'function',\n    moc: typeof win.MutationObserver === 'function',\n    ioc: typeof win.IntersectionObserver === 'function',\n    vis: typeof doc.visibilityState !== 'undefined',\n    perf: typeof win.performance === 'object' && win.performance && typeof win.performance.now === 'function',\n    po: typeof win.PerformanceObserver === 'function',\n    mem: typeof win.performance === 'object' && win.performance && 'memory' in win.performance,\n    cle: typeof win.CustomEvent === 'function',\n    ma: typeof win.matchMedia === 'function',\n    // Network Information API -- Chromium-based browsers only (Firefox and\n    // Safari have never implemented it). Every use of this is guarded by\n    // `has.net`, with an honest \"unknown connection\" fallback everywhere\n    // it's read, not an assumption of a fast connection.\n    net: typeof win.navigator === 'object' && win.navigator && 'connection' in win.navigator\n  };\n\n  function now() { return has.perf ? performance.now() : Date.now(); }\n  function raf(fn) { return has.raf ? requestAnimationFrame(fn) : setTimeout(fn, 16); }\n  function caf(id) { if (has.raf) cancelAnimationFrame(id); else clearTimeout(id); }\n  var IDLE_SHIM = { timeRemaining: function () { return 8; }, didTimeout: false };\n  function ric(fn, o) {\n    if (has.ric) return requestIdleCallback(fn, o || { timeout: 200 });\n    return setTimeout(function () { fn(IDLE_SHIM); }, 1);\n  }\n  function cic(id) { if (has.ric) cancelIdleCallback(id); else clearTimeout(id); }\n  function safe0(fn) { try { return fn(); } catch (e) { if (typeof Z.onerror === 'function') Z.onerror(e); } }\n  function safe1(fn, a) { try { return fn(a); } catch (e) { if (typeof Z.onerror === 'function') Z.onerror(e); } }\n  function safe2(fn, a, b) { try { return fn(a, b); } catch (e) { if (typeof Z.onerror === 'function') Z.onerror(e); } }\n  function emit(type, detail) { if (!has.cle) return; try { win.dispatchEvent(new CustomEvent('zelvior:' + type, { detail: detail })); } catch (e) {} }\n  function byTag(root, tag) { try { return root.getElementsByTagName(tag); } catch (e) { return []; } }\n  function byAll(root) { try { return root.getElementsByTagName('*'); } catch (e) { return []; } }\n\n  var Scheduler = (function () {\n    var hi = [], lo = [], rafId = 0, ricId = 0, ticking = false;\n    var BUDGET = 12;\n    function budget() { var cfg = Optimizer.config; return (cfg && cfg.idleBoost) ? BUDGET * 1.5 : BUDGET; }\n    function flushHi() {\n      ticking = true;\n      var start = now(), t = budget();\n      while (hi.length && (now() - start) < t) safe0(hi.shift());\n      if (hi.length) rafId = raf(flushHi); else ticking = false;\n    }\n    function flushLo(deadline) {\n      var cap = (Optimizer.config && Optimizer.config.chunk) || 12;\n      var n = 0;\n      var t = (deadline && deadline.timeRemaining) ? deadline.timeRemaining() : 4;\n      while (lo.length && t > 1 && n < cap) { safe0(lo.shift()); n++; t = (deadline.timeRemaining) ? deadline.timeRemaining() : t - 1; }\n      if (lo.length) ricId = ric(flushLo); else ricId = 0;\n    }\n    return {\n      add: function (fn, priority) {\n        if (priority === 'low') { lo.push(fn); if (!ricId) ricId = ric(flushLo); }\n        else { hi.push(fn); if (!ticking) { rafId = raf(flushHi); ticking = true; } }\n        return fn;\n      },\n      addIdle: function (fn) { return this.add(fn, 'low'); },\n      nextFrame: function (fn) { return raf(fn); },\n      whenIdle: function (fn) { return ric(fn); },\n      clear: function () { hi.length = 0; lo.length = 0; if (rafId) caf(rafId); if (ricId) cic(ricId); ticking = false; rafId = ricId = 0; },\n      pending: function () { return hi.length + lo.length; }\n    };\n  })();\n\n  var Observer = (function () {\n    var moc = null, ioc = null, po = null;\n    var listeners = {};\n    var fallbackWatchers = (typeof WeakMap === 'function') ? new WeakMap() : null;\n    var fallbackSet = (typeof Set === 'function') ? new Set() : null;\n    function runFallbackChecks() { if (!fallbackSet || !fallbackSet.size) return; fallbackSet.forEach(function (check) { check(); }); }\n    var on = function (type, fn) { (listeners[type] || (listeners[type] = [])).push(fn); };\n    var fire = function (type, detail) { var arr = listeners[type]; if (!arr) return; for (var i = 0; i < arr.length; i++) safe1(arr[i], detail); };\n    var visHandler = function () { fire('visibility', { hidden: doc.hidden, state: doc.visibilityState }); };\n    var rafPending = false, mutBuf = [];\n    var MUT_BUF_MAX = 500;\n    function flushMut() {\n      rafPending = false;\n      if (!mutBuf.length) return;\n      var batch = mutBuf; mutBuf = [];\n      fire('mutation', batch);\n    }\n    var pollT = null, lastChildCount = 0;\n    function pollMut() {\n      try {\n        var c = doc.body ? doc.body.childNodes.length : 0;\n        if (c !== lastChildCount) { lastChildCount = c; fire('mutation', [{ type: 'poll', target: doc.body }]); }\n      } catch (e) {}\n    }\n    var scrollT = null, resizeT = null;\n    function onMocRecords(muts) {\n      for (var i = 0; i < muts.length; i++) mutBuf.push(muts[i]);\n      if (mutBuf.length >= MUT_BUF_MAX || (has.vis && doc.hidden)) { flushMut(); return; }\n      if (!rafPending) { rafPending = true; raf(flushMut); }\n    }\n    function doResize() { resizeT = false; fire('resize', { w: win.innerWidth, h: win.innerHeight }); runFallbackChecks(); }\n    function onResize() { if (resizeT) return; resizeT = true; raf(doResize); }\n    function doScroll() { scrollT = false; fire('scroll', { x: win.pageXOffset || DE.scrollLeft, y: win.pageYOffset || DE.scrollTop }); runFallbackChecks(); }\n    function onScroll() { if (scrollT) return; scrollT = true; raf(doScroll); }\n    return {\n      on: on,\n      off: function (type, fn) { var arr = listeners[type]; if (!arr) return; var i = arr.indexOf(fn); if (i > -1) arr.splice(i, 1); },\n      start: function () {\n        var cfg = Optimizer.config;\n        if (has.moc) {\n          moc = new MutationObserver(onMocRecords);\n          var mocOpts = { childList: true, subtree: true, attributes: !!cfg.observeAttrs };\n          if (cfg.observeAttrs) mocOpts.attributeFilter = ['src', 'data-zelvior'];\n          safe0(function () { moc.observe(doc, mocOpts); });\n        } else { lastChildCount = doc.body ? doc.body.childNodes.length : 0; pollT = setInterval(pollMut, cfg.pollInterval || 1000); }\n        if (has.vis) doc.addEventListener('visibilitychange', visHandler);\n        listeners._resize = onResize; listeners._scroll = onScroll;\n        win.addEventListener('resize', onResize, { passive: true }); win.addEventListener('scroll', onScroll, { passive: true });\n      },\n      stop: function () {\n        if (moc) { safe0(function () { moc.disconnect(); }); moc = null; }\n        if (ioc) { safe0(function () { ioc.disconnect(); }); ioc = null; }\n        if (po) { safe0(function () { po.disconnect(); }); po = null; }\n        if (pollT) { clearInterval(pollT); pollT = null; }\n        if (has.vis) doc.removeEventListener('visibilitychange', visHandler);\n        if (listeners._resize) win.removeEventListener('resize', listeners._resize);\n        if (listeners._scroll) win.removeEventListener('scroll', listeners._scroll);\n        if (fallbackSet) fallbackSet.clear();\n        listeners = {};\n      },\n      watch: function (el, cb, opts) {\n        var cfg = Optimizer.config;\n        var margin = opts && opts.rootMargin ? opts.rootMargin : cfg.rootMargin;\n        if (has.ioc) {\n          if (!ioc) {\n            ioc = new IntersectionObserver(function (entries) {\n              for (var i = 0; i < entries.length; i++) safe2(cb, entries[i].target, entries[i].isIntersecting);\n            }, { rootMargin: margin });\n          }\n          safe0(function () { ioc.observe(el); });\n        } else {\n          function check() {\n            try {\n              var r = el.getBoundingClientRect();\n              var vh = win.innerHeight || DE.clientHeight;\n              var vw = win.innerWidth || DE.clientWidth;\n              if (r.top <= vh + 50 && r.bottom >= -50 && r.left <= vw + 50 && r.right >= -50) safe2(cb, el, true);\n            } catch (e) {}\n          }\n          if (fallbackWatchers) fallbackWatchers.set(el, check);\n          if (fallbackSet) fallbackSet.add(check);\n          check();\n          if (!fallbackSet) {\n            win.addEventListener('scroll', check, { passive: true });\n            win.addEventListener('resize', check, { passive: true });\n          }\n        }\n      },\n      unwatch: function (el) {\n        if (ioc) safe0(function () { ioc.unobserve(el); });\n        if (fallbackWatchers) {\n          var check = fallbackWatchers.get(el);\n          if (check) {\n            if (fallbackSet) fallbackSet.delete(check);\n            else {\n              win.removeEventListener('scroll', check);\n              win.removeEventListener('resize', check);\n            }\n            fallbackWatchers.delete(el);\n          }\n        }\n      }\n    };\n  })();\n\n  var Optimizer = (function () {\n    var conn = (typeof navigator === 'object' && navigator) ? (navigator.connection || navigator.mozConnection || navigator.webkitConnection) : null;\n    var reducedMotion = has.ma ? win.matchMedia('(prefers-reduced-motion: reduce)').matches : false;\n    var saveData = conn ? (conn.saveData === true) : false;\n    var effectiveType = conn ? (conn.effectiveType || '4g') : '4g';\n    var slow = saveData || effectiveType === 'slow-2g' || effectiveType === '2g';\n\n    var config = {\n      rootMargin: '250px',\n      chunk: 12,\n      reduceAnim: false,\n      observeAttrs: true,\n      pollInterval: 1000,\n      idleBoost: false\n    };\n\n    var writeBuf = [], writeScheduled = false;\n    function flushWrites() {\n      writeScheduled = false;\n      if (!writeBuf.length) return;\n      var b = writeBuf; writeBuf = [];\n      for (var i = 0; i < b.length; i++) safe0(b[i]);\n      emit('batch', { count: b.length });\n    }\n\n    function onImgLoad() { this.setAttribute('data-zelvior', 'loaded'); emit('img:load', this); }\n    function onImgVisible(el, visible) {\n      if (!visible) return;\n      var s = el.getAttribute('data-src');\n      if (s) {\n        el.addEventListener('load', onImgLoad, { once: true });\n        el.setAttribute('src', s);\n      }\n      Observer.unwatch(el);\n    }\n    function isInInitialViewport(img) {\n      try {\n        var r = img.getBoundingClientRect();\n        var vh = win.innerHeight || DE.clientHeight;\n        var vw = win.innerWidth || DE.clientWidth;\n        return r.top < vh && r.bottom > 0 && r.left < vw && r.right > 0;\n      } catch (e) { return false; }\n    }\n    function deferImage(img) {\n      if (!img || img.tagName !== 'IMG') return;\n      if (img.getAttribute('data-zelvior') === 'deferred') return;\n      var loading = img.getAttribute('loading');\n      var fp = img.getAttribute('fetchpriority');\n      if (loading === 'eager' || fp === 'high') { img.setAttribute('data-zelvior', 'skipped'); return; }\n      if (isInInitialViewport(img)) { img.setAttribute('data-zelvior', 'skipped'); return; }\n      img.setAttribute('data-zelvior', 'deferred');\n      var src = img.getAttribute('src');\n      var ds = img.getAttribute('data-src');\n      if (src && !ds && !img.complete) { img.setAttribute('data-src', src); img.removeAttribute('src'); if (!img.getAttribute('decoding')) img.setAttribute('decoding', 'async'); }\n      Observer.watch(img, onImgVisible, { rootMargin: config.rootMargin });\n    }\n\n    return {\n      profile: { reducedMotion: reducedMotion, saveData: saveData, effectiveType: effectiveType, slow: slow },\n      config: config,\n      setConfig: function (cfg) { for (var k in cfg) if (Object.prototype.hasOwnProperty.call(cfg, k)) config[k] = cfg[k]; emit('config', config); },\n      deferImages: function (root) {\n        var imgs = byTag(root || doc, 'img');\n        for (var i = 0; i < imgs.length; i++) safe1(deferImage, imgs[i]);\n        emit('optimize:images', { count: imgs.length });\n      },\n      reduceAnimations: function (force) {\n        if (!reducedMotion && !force) return false;\n        safe0(function () {\n          if (doc.querySelector('style[data-zelvior=\"reduce\"]')) return;\n          var style = doc.createElement('style');\n          style.setAttribute('data-zelvior', 'reduce');\n          style.textContent = '*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}';\n          doc.head.appendChild(style);\n        });\n        emit('optimize:reduce', { forced: !!force });\n        return true;\n      },\n      restoreAnimations: function () {\n        var s = doc.querySelector('style[data-zelvior=\"reduce\"]');\n        if (s && s.parentNode) s.parentNode.removeChild(s);\n      },\n      split: function (items, work, chunk) {\n        var i = 0, n = items.length;\n        function step(deadline) {\n          var t = (deadline && deadline.timeRemaining) ? deadline.timeRemaining() : 5;\n          while (i < n && t > 1) { safe2(work, items[i], i); i++; t = (deadline.timeRemaining) ? deadline.timeRemaining() : t - 1; }\n          if (i < n) ric(step, { timeout: 300 }); else emit('split:done', { count: n });\n        }\n        ric(step);\n      },\n      batch: function (fn) { writeBuf.push(fn); if (!writeScheduled) { writeScheduled = true; raf(flushWrites); } },\n      isSlow: function () { return slow; },\n      shouldDefer: function () { return slow || saveData; }\n    };\n  })();\n\n  var Lite = (function () {\n    var active = false;\n    var STYLE_ID = 'lite';\n    // Brutal mode: this does not just visually suppress the expensive\n    // paint/composite layer via CSS override -- it strips the actual\n    // inline-style declarations and SVG filter primitives that cause it,\n    // so nothing is left for a later stylesheet, inline `style=\"\"` write,\n    // or SVG `<filter>` reference to reinstate. This is a deliberate,\n    // aggressive quality trade -- default OFF, opt-in only.\n    var CSS = [\n      '*,*::before,*::after{',\n      'box-shadow:none!important;',\n      'text-shadow:none!important;',\n      'filter:none!important;',\n      '-webkit-backdrop-filter:none!important;',\n      'backdrop-filter:none!important;',\n      'background-blend-mode:normal!important;',\n      'mix-blend-mode:normal!important;',\n      'will-change:auto!important;',\n      'animation:none!important;',\n      'transition:none!important;',\n      'transform:none!important;',\n      'perspective:none!important;',\n      'backface-visibility:visible!important;',\n      '-webkit-backface-visibility:visible!important;',\n      'clip-path:none!important;',\n      '-webkit-clip-path:none!important;',\n      'mask:none!important;',\n      '-webkit-mask:none!important;',\n      'border-radius:0!important;',\n      'isolation:auto!important;',\n      'background-attachment:scroll!important;',\n      'scroll-behavior:auto!important;',\n      '}',\n      // Gradients/blurred backgrounds specifically (not every background,\n      // real photo/pattern backgrounds are left alone).\n      '[style*=\"gradient\"]{background-image:none!important;}',\n      'html,body,*{scrollbar-width:auto!important;}',\n      '::-webkit-scrollbar{width:auto!important;height:auto!important;background:initial!important;}',\n      '::-webkit-scrollbar-thumb,::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:initial!important;border:initial!important;box-shadow:none!important;}'\n    ].join('');\n\n    // Inline-style properties actively deleted from every element's own\n    // `style` attribute (CSS !important above only defeats these when they\n    // come from stylesheets/inline non-!important rules -- an inline\n    // `style=\"filter:blur(8px)!important\"` would otherwise survive).\n    var STRIP_PROPS = [\n      'boxShadow', 'webkitBoxShadow', 'textShadow', 'filter', 'webkitFilter',\n      'backdropFilter', 'webkitBackdropFilter', 'mixBlendMode',\n      'backgroundBlendMode', 'willChange', 'animation', 'webkitAnimation',\n      'transition', 'webkitTransition', 'transform', 'webkitTransform',\n      'perspective', 'webkitPerspective', 'backfaceVisibility', 'webkitBackfaceVisibility',\n      'clipPath', 'webkitClipPath', 'mask', 'webkitMask', 'borderRadius', 'isolation'\n    ];\n\n    function stripInlineStyles(root) {\n      var live = byAll(root || doc);\n      // `byAll()` returns a *live* HTMLCollection. Both `.length` AND\n      // indexed access on a live collection can re-walk the tree on every\n      // call in some engines (confirmed in jsdom; the exact cost varies\n      // by engine, but there is no reason to pay it here) -- this loop\n      // only mutates existing elements' style, never adds/removes\n      // elements, so snapshotting to a plain array once is always safe\n      // and turns an O(n^2)-shaped walk into a real O(n) one.\n      var els = Array.prototype.slice.call(live);\n      var n = els.length;\n      for (var i = 0; i < n; i++) {\n        var s = els[i].style;\n        if (!s || !s.length) continue;\n        for (var j = 0; j < STRIP_PROPS.length; j++) {\n          var p = STRIP_PROPS[j];\n          if (s[p]) s[p] = '';\n        }\n        var bg = s.backgroundImage;\n        if (bg && bg.indexOf('gradient') > -1) s.backgroundImage = '';\n      }\n    }\n\n    // SVG <filter> elements back drop-shadow/blur/glow effects referenced\n    // via `filter: url(#id)`, which the CSS `filter:none!important` rule\n    // above already neutralizes -- this removes the definitions outright\n    // so nothing can re-reference them.\n    function stripSvgFilters(root) {\n      var svgFilters = (root || doc).querySelectorAll ? (root || doc).querySelectorAll('filter') : [];\n      var n = svgFilters.length; // static NodeList from querySelectorAll -- not live, but cache anyway for consistency\n      for (var i = 0; i < n; i++) {\n        var f = svgFilters[i];\n        if (f.parentNode) f.parentNode.removeChild(f);\n      }\n    }\n\n    function onMutation() { safe0(function () { stripInlineStyles(doc); stripSvgFilters(doc); }); }\n\n    return {\n      isActive: function () { return active; },\n      enable: function () {\n        if (active) return false;\n        safe0(function () {\n          if (!doc.querySelector('style[data-zelvior=\"' + STYLE_ID + '\"]')) {\n            var style = doc.createElement('style');\n            style.setAttribute('data-zelvior', STYLE_ID);\n            style.textContent = CSS;\n            doc.head.appendChild(style);\n          }\n          stripInlineStyles(doc);\n          stripSvgFilters(doc);\n        });\n        Observer.on('mutation', onMutation);\n        active = true;\n        emit('lite:enable', {});\n        return true;\n      },\n      disable: function () {\n        safe0(function () {\n          var s = doc.querySelector('style[data-zelvior=\"' + STYLE_ID + '\"]');\n          if (s && s.parentNode) s.parentNode.removeChild(s);\n        });\n        Observer.off('mutation', onMutation);\n        active = false;\n        emit('lite:disable', {});\n      }\n    };\n  })();\n\n\n  var Adaptive = (function () {\n    var LEVELS = [\n      { name: 'quality',   rootMargin: '500px', chunk: 6,  reduceAnim: 0, observeAttrs: 1, pollInterval: 1500, idleBoost: 1 },\n      { name: 'balanced',  rootMargin: '250px', chunk: 12, reduceAnim: 0, observeAttrs: 1, pollInterval: 1000, idleBoost: 0 },\n      { name: 'efficient', rootMargin: '100px', chunk: 24, reduceAnim: 0, observeAttrs: 0, pollInterval: 800,  idleBoost: 0 },\n      { name: 'max',       rootMargin: '50px',  chunk: 48, reduceAnim: 1, observeAttrs: 0, pollInterval: 600,  idleBoost: 0 }\n    ];\n    var level = 1;\n    var fpsHist = [], idleHist = [], longRecent = 0;\n    var escStreak = 0, relStreak = 0;\n    var REQUIRED = 2;\n    var probeT = null, decideT = null;\n    var lastProbeDelay = 0;\n    var busyRatio = 0;\n    var started = false;\n    var pinned = false; // true after force(); suppresses decide() until start() is called again\n\n    // --- Battery-aware tuning -------------------------------------------\n    // The Battery Status API (navigator.getBattery) is Chromium-only --\n    // Firefox and Safari never shipped it, and it's been removed from the\n    // living standard over privacy concerns (device fingerprinting via\n    // battery level). It's used here defensively: feature-detected,\n    // read-only, no attempt made to work around its absence, and the\n    // threshold is conservative (unplugged AND <=20% by default) so this\n    // never fires on a healthy laptop that just isn't plugged in.\n    var hasBattery = typeof navigator === 'object' && navigator && typeof navigator.getBattery === 'function';\n    var batteryObj = null;\n    var batteryLevel = 1;\n    var batteryCharging = true;\n    var batteryThreshold = 0.2;\n\n    function lowBattery() {\n      return hasBattery && batteryObj !== null && !batteryCharging && batteryLevel <= batteryThreshold;\n    }\n    function onBatteryChange() {\n      if (!batteryObj) return;\n      batteryLevel = batteryObj.level;\n      batteryCharging = batteryObj.charging;\n      if (pinned || (has.vis && doc.hidden)) return;\n      if (lowBattery() && level < 3) {\n        escStreak = 0; relStreak = 0;\n        apply(3);\n        emit('adaptive:reason', { reason: 'low-battery', level: Math.round(batteryLevel * 100) });\n      }\n      // Deliberately no symmetric immediate de-escalation on charging\n      // resuming or level rising -- same asymmetry as the connection and\n      // FPS signals: escalation is immediate, de-escalation goes through\n      // the normal two-consecutive-good-ticks streak logic in decide().\n    }\n    function startBatteryWatch() {\n      if (!hasBattery) return;\n      safe0(function () {\n        navigator.getBattery().then(function (battery) {\n          batteryObj = battery;\n          onBatteryChange();\n          battery.addEventListener('levelchange', onBatteryChange);\n          battery.addEventListener('chargingchange', onBatteryChange);\n        });\n      });\n    }\n    function stopBatteryWatch() {\n      if (batteryObj) {\n        safe0(function () {\n          batteryObj.removeEventListener('levelchange', onBatteryChange);\n          batteryObj.removeEventListener('chargingchange', onBatteryChange);\n        });\n      }\n      // Deliberately NOT resetting batteryObj/batteryLevel/batteryCharging\n      // to their initial defaults here -- stop() is called on every\n      // Z.disable(), and a caller who immediately re-enables shouldn't\n      // see a false \"fully charged\" reading flash before the next\n      // getBattery() promise resolves. The stale-but-real last known\n      // reading is more honest than a fake reset.\n    }\n\n    function apply(lvl) {\n      if (lvl === level && started) return;\n      level = lvl;\n      var cfg = LEVELS[lvl];\n      Optimizer.setConfig({\n        rootMargin: cfg.rootMargin,\n        chunk: cfg.chunk,\n        observeAttrs: cfg.observeAttrs,\n        pollInterval: cfg.pollInterval,\n        idleBoost: cfg.idleBoost\n      });\n      if (cfg.reduceAnim) Optimizer.reduceAnimations(true);\n      else Optimizer.restoreAnimations();\n      emit('adaptive:level', { level: lvl, name: cfg.name, config: cfg, pinned: pinned });\n    }\n\n    function probeIdle() {\n      if (has.vis && doc.hidden) return;\n      var s = now();\n      setTimeout(function () {\n        lastProbeDelay = now() - s;\n        idleHist.push(lastProbeDelay < 8 ? 1 : 0);\n        if (idleHist.length > 6) idleHist.shift();\n        var sum = 0; for (var i = 0; i < idleHist.length; i++) sum += idleHist[i];\n        busyRatio = 1 - (sum / idleHist.length);\n      }, 0);\n    }\n\n    function onMetrics(m) {\n      fpsHist.push(m.fps);\n      if (fpsHist.length > 10) fpsHist.shift();\n    }\n    function onLongTask() { longRecent++; }\n\n    function connectionInfo() {\n      if (!has.net) return null;\n      var c = win.navigator.connection;\n      if (!c) return null;\n      return { effectiveType: c.effectiveType || null, saveData: !!c.saveData, downlink: typeof c.downlink === 'number' ? c.downlink : null, rtt: typeof c.rtt === 'number' ? c.rtt : null };\n    }\n    function slowConnection() {\n      var c = connectionInfo();\n      if (!c) return false;\n      return c.saveData || c.effectiveType === 'slow-2g' || c.effectiveType === '2g';\n    }\n    function onConnectionChange() {\n      if (pinned || (has.vis && doc.hidden)) return;\n      if (slowConnection() && level < 3) {\n        escStreak = 0; relStreak = 0;\n        apply(3);\n        emit('adaptive:reason', { reason: 'slow-connection', connection: connectionInfo() });\n      }\n      // Deliberately no symmetric immediate de-escalation on a connection\n      // improving -- that still goes through the normal FPS-based streak\n      // logic in decide(), same asymmetry as critical-fps escalating\n      // immediately but idle+smooth requiring two consecutive good ticks.\n    }\n\n    function decide() {\n      if (has.vis && doc.hidden) return;\n      if (pinned) return;\n      if (slowConnection()) {\n        if (level < 3) { escStreak = 0; relStreak = 0; apply(3); emit('adaptive:reason', { reason: 'slow-connection', connection: connectionInfo() }); }\n        return;\n      }\n      if (lowBattery()) {\n        if (level < 3) { escStreak = 0; relStreak = 0; apply(3); emit('adaptive:reason', { reason: 'low-battery', level: Math.round(batteryLevel * 100) }); }\n        return;\n      }\n      if (!fpsHist.length) return;\n      var sum = 0; for (var i = 0; i < fpsHist.length; i++) sum += fpsHist[i];\n      var avg = sum / fpsHist.length;\n      var recent = fpsHist[fpsHist.length - 1];\n\n      if (avg < 20 || recent < 15) {\n        escStreak = 0; relStreak = 0;\n        apply(3);\n        emit('adaptive:reason', { reason: 'critical-fps', avg: Math.round(avg), recent: recent });\n        return;\n      }\n      if (avg < 35) { escStreak++; relStreak = 0; if (escStreak >= REQUIRED && level < 3) { apply(level + 1); escStreak = 0; emit('adaptive:reason', { reason: 'low-fps', avg: Math.round(avg) }); } return; }\n      if (longRecent > 3) { escStreak++; relStreak = 0; if (escStreak >= REQUIRED && level < 3) { apply(level + 1); escStreak = 0; emit('adaptive:reason', { reason: 'long-tasks', count: longRecent }); } longRecent = 0; return; }\n      if (busyRatio >= 0.5 || lastProbeDelay > 15) { escStreak++; relStreak = 0; if (escStreak >= REQUIRED && level < 3) { apply(level + 1); escStreak = 0; emit('adaptive:reason', { reason: 'busy-thread', busy: Math.round(busyRatio * 100), probe: Math.round(lastProbeDelay) }); } return; }\n\n      if (avg > 50 && (lastProbeDelay < 8 || busyRatio < 0.35)) {\n        relStreak++; escStreak = 0;\n        if (relStreak >= REQUIRED && level > 0) { apply(level - 1); relStreak = 0; emit('adaptive:reason', { reason: 'idle+smooth', avg: Math.round(avg), busy: Math.round(busyRatio * 100), probe: Math.round(lastProbeDelay) }); }\n      } else { relStreak = 0; }\n    }\n\n    function startupProbe() {\n      var t0 = now();\n      raf(function () {\n        var rafDelta = now() - t0;\n        setTimeout(function () {\n          // Battery/connection-driven escalation can legitimately happen\n          // before this fires (getBattery()'s Promise resolves as a\n          // microtask, well before this raf+setTimeout chain settles).\n          // Blindly overwriting that with a timing-only classification\n          // was a real bug -- a phone at 15% unplugged battery would get\n          // escalated to max by onBatteryChange(), then immediately\n          // de-escalated back down by startupProbe() 600ms later, since\n          // fast startup timing alone said \"this device is fine.\"\n          // Startup classification defers to those signals first, same\n          // precedence order decide() already uses.\n          if (pinned) { emit('adaptive:startup', { rafDelta: Math.round(rafDelta), totalDelay: Math.round(now() - t0), level: level, skipped: 'pinned' }); return; }\n          if (slowConnection() || lowBattery()) { emit('adaptive:startup', { rafDelta: Math.round(rafDelta), totalDelay: Math.round(now() - t0), level: level, skipped: 'degraded-signal' }); return; }\n          var totalDelay = now() - t0;\n          if (rafDelta > 50 || totalDelay > 80) apply(3);\n          else if (rafDelta > 30 || totalDelay > 50) apply(2);\n          else apply(1);\n          emit('adaptive:startup', { rafDelta: Math.round(rafDelta), totalDelay: Math.round(totalDelay), level: level });\n        }, 0);\n      });\n    }\n\n    return {\n      LEVELS: LEVELS,\n      get level() { return level; },\n      get name() { return LEVELS[level].name; },\n      get busyRatio() { return busyRatio; },\n      get lastProbeDelay() { return lastProbeDelay; },\n      get fpsAvg() { if (!fpsHist.length) return 0; var s = 0; for (var i = 0; i < fpsHist.length; i++) s += fpsHist[i]; return s / fpsHist.length; },\n      start: function () {\n        if (started) return; started = true;\n        pinned = false; // an explicit (re)start means \"resume auto-tuning\", overriding any prior force()\n        setTimeout(function () { safe0(startupProbe); }, 600);\n        probeT = setInterval(probeIdle, 2000);\n        decideT = setInterval(decide, 2500);\n        if (has.net && win.navigator.connection && win.navigator.connection.addEventListener) {\n          safe0(function () { win.navigator.connection.addEventListener('change', onConnectionChange); });\n        }\n        startBatteryWatch();\n      },\n      stop: function () {\n        started = false;\n        if (probeT) clearInterval(probeT); probeT = null;\n        if (decideT) clearInterval(decideT); decideT = null;\n        if (has.net && win.navigator.connection && win.navigator.connection.removeEventListener) {\n          safe0(function () { win.navigator.connection.removeEventListener('change', onConnectionChange); });\n        }\n        stopBatteryWatch();\n      },\n      force: function (lvl) { if (lvl >= 0 && lvl < LEVELS.length) { pinned = true; apply(lvl); } },\n      get pinned() { return pinned; },\n      get connection() { return connectionInfo(); },\n      get battery() { return { supported: hasBattery, level: Math.round(batteryLevel * 100), charging: batteryCharging, low: lowBattery() }; },\n      setBatteryThreshold: function (pct) { if (typeof pct === 'number' && pct >= 0 && pct <= 1) batteryThreshold = pct; },\n      onMetrics: onMetrics,\n      onLongTask: onLongTask,\n      snapshot: function () { return { level: level, name: LEVELS[level].name, fpsAvg: Math.round(this.fpsAvg), busyRatio: Math.round(busyRatio * 100), probeDelay: Math.round(lastProbeDelay), escStreak: escStreak, relStreak: relStreak, pinned: pinned, connection: connectionInfo(), battery: this.battery }; }\n    };\n  })();\n\n  var Recycler = (function () {\n    var pools = {};\n    var MAX = 64;\n    function key(tag) { return (tag || 'div').toLowerCase(); }\n    return {\n      acquire: function (tag) {\n        var k = key(tag);\n        var pool = pools[k];\n        if (pool && pool.length) { var node = pool.pop(); if (node) { while (node.attributes.length) node.removeAttribute(node.attributes[0].name); return node; } }\n        return doc.createElement(k);\n      },\n      release: function (node) {\n        if (!node) return;\n        if (node.parentNode) safe0(function () { node.parentNode.removeChild(node); });\n        var k = key(node.tagName);\n        var pool = pools[k] || (pools[k] = []);\n        if (pool.length < MAX) { while (node.firstChild) node.removeChild(node.firstChild); pool.push(node); emit('recycle', { tag: k, pool: pool.length }); }\n      },\n      poolSize: function (tag) { if (!tag) { var t = 0; for (var k in pools) t += pools[k].length; return t; } return (pools[key(tag)] || []).length; },\n      clear: function () { pools = {}; }\n    };\n  })();\n\n  var Memory = (function () {\n    var cache = new Map();\n    var detached = (typeof WeakSet === 'function') ? new WeakSet() : null;\n    var leakRefs = [];\n    function sweep() {\n      var t = now(), removed = 0;\n      cache.forEach(function (entry, k) { if (entry.exp && t > entry.exp) { cache.delete(k); removed++; } });\n      if (removed) emit('cache:sweep', { removed: removed, size: cache.size });\n      return removed;\n    }\n    return {\n      set: function (k, v, ttl) { cache.set(k, { v: v, exp: ttl ? now() + ttl : 0 }); },\n      get: function (k) { var e = cache.get(k); if (!e) return undefined; if (e.exp && now() > e.exp) { cache.delete(k); return undefined; } return e.v; },\n      has: function (k) { var e = cache.get(k); if (!e) return false; if (e.exp && now() > e.exp) { cache.delete(k); return false; } return true; },\n      del: function (k) { return cache.delete(k); },\n      clear: function () { cache.clear(); },\n      size: function () { sweep(); return cache.size; },\n      track: function (node) { if (!node) return; if (detached) detached.add(node); leakRefs.push({ node: node, ts: now() }); if (leakRefs.length > 200) leakRefs.shift(); },\n      isTracked: function (node) { return detached ? detached.has(node) : false; },\n      leaks: function () { var live = 0, dead = 0; for (var i = 0; i < leakRefs.length; i++) { var n = leakRefs[i].node; if (n && !n.parentNode && !n.isConnected) live++; else dead++; } return { tracked: leakRefs.length, detached: live, attached: dead, cacheSize: cache.size }; },\n      sweep: sweep\n    };\n  })();\n\n  var Metrics = (function () {\n    var state = { fps: 0, fpsMin: Infinity, fpsMax: 0, frames: 0, lastTs: 0, memory: 0, memoryPeak: 0, domCount: 0, longTasks: 0, longTaskTotal: 0, paintTime: 0, cls: 0, uptime: 0, startedAt: 0 };\n    var rafId = 0, poLt = null, poPaint = null, poCls = null;\n    var samples = { fps: [], mem: [] };\n    var MAX_SAMPLES = 60;\n    var domTick = 0, DOM_SAMPLE_EVERY = 4;\n    function countDom() { try { return byAll(doc).length; } catch (e) { return 0; } }\n    function tick(ts) {\n      state.frames++;\n      if (!state.lastTs) state.lastTs = ts;\n      var delta = ts - state.lastTs;\n      if (delta >= 500) {\n        if (has.vis && doc.hidden) { state.frames = 0; state.lastTs = ts; rafId = raf(tick); return; }\n        var f = Math.round((state.frames * 1000) / delta);\n        state.fps = f;\n        if (f > 0) { if (f < state.fpsMin) state.fpsMin = f; if (f > state.fpsMax) state.fpsMax = f; }\n        state.frames = 0; state.lastTs = ts;\n        if (has.mem) { try { state.memory = Math.round(performance.memory.usedJSHeapSize / 1048576); if (state.memory > state.memoryPeak) state.memoryPeak = state.memory; } catch (e) {} }\n        domTick = (domTick + 1) % DOM_SAMPLE_EVERY;\n        if (domTick === 0) state.domCount = countDom();\n        state.uptime = Math.round((ts - state.startedAt) / 1000);\n        samples.fps.push(state.fps); if (samples.fps.length > MAX_SAMPLES) samples.fps.shift();\n        samples.mem.push(state.memory); if (samples.mem.length > MAX_SAMPLES) samples.mem.shift();\n        var snap = {};\n        for (var k in state) snap[k] = state[k];\n        snap.samples = { fps: samples.fps.slice(), mem: samples.mem.slice() };\n        emit('metrics', snap);\n        if (Adaptive) Adaptive.onMetrics(snap);\n      }\n      rafId = raf(tick);\n    }\n    return {\n      start: function () {\n        state.startedAt = now(); rafId = raf(tick);\n        if (has.po) {\n          safe0(function () { poLt = new PerformanceObserver(function (l) { var es = l.getEntries(); for (var i = 0; i < es.length; i++) { state.longTasks++; state.longTaskTotal += es[i].duration; } if (Adaptive) Adaptive.onLongTask(); emit('longtask', { count: es.length }); }); poLt.observe({ entryTypes: ['longtask'] }); });\n          safe0(function () { poPaint = new PerformanceObserver(function (l) { var es = l.getEntries(); for (var i = 0; i < es.length; i++) { if (es[i].name === 'first-contentful-paint') state.paintTime = Math.round(es[i].startTime); } }); poPaint.observe({ entryTypes: ['paint'] }); });\n          safe0(function () { poCls = new PerformanceObserver(function (l) { var es = l.getEntries(); for (var i = 0; i < es.length; i++) { if (typeof es[i].value === 'number') state.cls += es[i].value; } }); poCls.observe({ entryTypes: ['layout-shift'] }); });\n        }\n      },\n      stop: function () { if (rafId) caf(rafId); rafId = 0; if (poLt) { safe0(function () { poLt.disconnect(); }); poLt = null; } if (poPaint) { safe0(function () { poPaint.disconnect(); }); poPaint = null; } if (poCls) { safe0(function () { poCls.disconnect(); }); poCls = null; } },\n      snapshot: function () { state.domCount = countDom(); if (has.mem) { try { state.memory = Math.round(performance.memory.usedJSHeapSize / 1048576); } catch (e) {} } var out = {}; for (var k in state) out[k] = state[k]; out.samples = { fps: samples.fps.slice(), mem: samples.mem.slice() }; return out; },\n      inc: function (key, n) { state[key] = (state[key] || 0) + (n || 1); }\n    };\n  })();\n\n  var Plugins = (function () {\n    var list = [];\n    var hooks = {};\n    return {\n      register: function (plugin) { if (!plugin || !plugin.name) return false; list.push(plugin); if (typeof plugin.init === 'function') safe0(function () { plugin.init({ Z: Z }); }); emit('plugin:register', { name: plugin.name }); return true; },\n      on: function (name, fn) { (hooks[name] || (hooks[name] = [])).push(fn); },\n      emit: function (name, payload) { var arr = hooks[name]; if (!arr) return; for (var i = 0; i < arr.length; i++) safe1(arr[i], payload); },\n      list: function () { return list.map(function (p) { return p.name; }); }\n    };\n  })();\n\n  function deferImagesOf(root) { Optimizer.deferImages(root); }\n  function processMutationBatch(batch) {\n    for (var i = 0; i < batch.length; i++) {\n      var m = batch[i];\n      if (m.type === 'childList' && m.addedNodes) {\n        for (var j = 0; j < m.addedNodes.length; j++) {\n          var n = m.addedNodes[j];\n          if (n.nodeType === 1) {\n            if (n.tagName === 'IMG') safe1(deferImagesOf, n.parentNode);\n            else if (n.getElementsByTagName) { var imgs = n.getElementsByTagName('img'); if (imgs.length) safe1(deferImagesOf, n); }\n          }\n        }\n      } else if (m.type === 'poll') { safe1(deferImagesOf, doc); }\n    }\n  }\n  function onMutationBatch(batch) { Scheduler.add(function () { processMutationBatch(batch); }, 'low'); }\n  function onVisibilityChange(d) { emit(d.hidden ? 'paused' : 'resumed', {}); }\n  var sweepId = 0, sweepRunning = false;\n  function sweepTick() { sweepId = 0; if (!sweepRunning) return; safe0(Memory.sweep); sweepLoop(); }\n  function sweepLoop() { sweepId = ric(sweepTick, { timeout: 5000 }); }\n\n  function applyEnhancements() {\n    safe0(function () { Optimizer.deferImages(doc); });\n    safe0(function () { Optimizer.reduceAnimations(); });\n    Observer.on('mutation', onMutationBatch);\n    Observer.on('visibility', onVisibilityChange);\n    sweepRunning = true;\n    sweepLoop();\n  }\n  function stopEnhancements() {\n    sweepRunning = false;\n    if (sweepId) { cic(sweepId); sweepId = 0; }\n  }\n\n  Z.enable = function (opts) {\n    if (enabled) return Z;\n    opts = opts || {};\n    enabled = true;\n    subs.scheduler = Scheduler; subs.observer = Observer; subs.optimizer = Optimizer;\n    subs.recycler = Recycler; subs.memory = Memory; subs.metrics = Metrics; subs.plugins = Plugins; subs.adaptive = Adaptive;\n    safe0(function () { Observer.start(); });\n    safe0(function () { Metrics.start(); });\n    if (opts.adaptive !== false) safe0(function () { Adaptive.start(); });\n    if (opts.enhance !== false) safe0(applyEnhancements);\n    if (opts.lite === true) safe0(function () { Lite.enable(); });\n    emit('enable', { profile: Optimizer.profile });\n    return Z;\n  };\n\n  Z.disable = function () {\n    if (!enabled) return Z;\n    enabled = false;\n    safe0(function () { Adaptive.stop(); });\n    safe0(function () { Observer.stop(); });\n    safe0(function () { Metrics.stop(); });\n    safe0(function () { Scheduler.clear(); });\n    safe0(stopEnhancements);\n    emit('disable', {});\n    return Z;\n  };\n\n  Z.scheduler = Scheduler; Z.observer = Observer; Z.optimizer = Optimizer; Z.recycler = Recycler;\n  Z.memory = Memory; Z.metrics = Metrics; Z.plugins = Plugins; Z.adaptive = Adaptive; Z.features = has;\n  // Visual-simplification mode: strips shadows/glassmorphism/glows/custom\n  // scrollbars for maximum paint/composite performance. Default OFF --\n  // this is an opt-in trade of visual polish for raw performance, not\n  // something that should silently change how a site looks.\n  Z.lite = { enable: function () { return Lite.enable(); }, disable: function () { return Lite.disable(); }, isActive: function () { return Lite.isActive(); } };\n  Z.isEnabled = function () { return enabled; };\n\nexport { Scheduler, Observer, Optimizer, Adaptive, Recycler, Memory, Metrics, Plugins };\nexport default Z;\n"],
  "mappings": "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",
  "names": ["zelvior_exports", "__export", "Adaptive", "Memory", "Metrics", "Observer", "Optimizer", "Plugins", "Recycler", "Scheduler", "zelvior_default", "__toCommonJS", "Z", "enabled", "doc", "win", "DE", "subs", "has", "now", "raf", "fn", "caf", "id", "IDLE_SHIM", "ric", "o", "cic", "safe0", "e", "safe1", "a", "safe2", "b", "emit", "type", "detail", "byTag", "root", "tag", "byAll", "hi", "lo", "rafId", "ricId", "ticking", "BUDGET", "budget", "cfg", "flushHi", "start", "t", "flushLo", "deadline", "cap", "n", "priority", "moc", "ioc", "po", "listeners", "fallbackWatchers", "fallbackSet", "runFallbackChecks", "check", "on", "fire", "arr", "i", "visHandler", "rafPending", "mutBuf", "MUT_BUF_MAX", "flushMut", "batch", "pollT", "lastChildCount", "pollMut", "c", "scrollT", "resizeT", "onMocRecords", "muts", "doResize", "onResize", "doScroll", "onScroll", "mocOpts", "el", "cb", "opts", "margin", "entries", "r", "vh", "vw", "conn", "reducedMotion", "saveData", "effectiveType", "slow", "config", "writeBuf", "writeScheduled", "flushWrites", "onImgLoad", "onImgVisible", "visible", "s", "isInInitialViewport", "img", "deferImage", "loading", "fp", "src", "ds", "k", "imgs", "force", "style", "items", "work", "chunk", "step", "Lite", "active", "STYLE_ID", "CSS", "STRIP_PROPS", "stripInlineStyles", "live", "els", "j", "p", "bg", "stripSvgFilters", "svgFilters", "f", "onMutation", "LEVELS", "level", "fpsHist", "idleHist", "longRecent", "escStreak", "relStreak", "REQUIRED", "probeT", "decideT", "lastProbeDelay", "busyRatio", "started", "pinned", "hasBattery", "batteryObj", "batteryLevel", "batteryCharging", "batteryThreshold", "lowBattery", "onBatteryChange", "apply", "startBatteryWatch", "battery", "stopBatteryWatch", "lvl", "probeIdle", "sum", "onMetrics", "m", "onLongTask", "connectionInfo", "slowConnection", "onConnectionChange", "decide", "avg", "recent", "startupProbe", "t0", "rafDelta", "totalDelay", "pct", "pools", "MAX", "key", "pool", "node", "cache", "detached", "leakRefs", "sweep", "removed", "entry", "v", "ttl", "dead", "state", "poLt", "poPaint", "poCls", "samples", "MAX_SAMPLES", "domTick", "DOM_SAMPLE_EVERY", "countDom", "tick", "ts", "delta", "snap", "l", "es", "out", "list", "hooks", "plugin", "name", "payload", "deferImagesOf", "processMutationBatch", "onMutationBatch", "onVisibilityChange", "d", "sweepId", "sweepRunning", "sweepTick", "sweepLoop", "applyEnhancements", "stopEnhancements", "zelvior_default", "Z"]
}
