{
  "version": 3,
  "sources": ["/cdn/shop/t/9/assets/founder-era.js?nocache=1794321677057"],
  "sourcesContent": ["/**\n * House story: the old sheet tears along a ragged line as you scroll and opens onto\n * the opening picture; it warms from sepia to colour; chapters rise in as they arrive\n * and their films play only while on screen.\n */\n(function () {\n  // A ragged tear across the sheet, the same every visit (seeded), so it never jumps\n  function tear(seed, steps) {\n    var pts = [], s = seed;\n    var rand = function () { s = (s * 9301 + 49297) % 233280; return s / 233280; };\n    for (var i = 0; i <= steps; i++) {\n      var x = (i / steps) * 100;\n      var y = 50 + (rand() - 0.5) * 1.6 + (i % 2 ? 0.35 : -0.35) * rand();\n      pts.push([x, y]);\n    }\n    return pts;\n  }\n\n  function init(root) {\n    var top = root.querySelector('[data-fe-top]');\n    var bottom = root.querySelector('[data-fe-bottom]');\n    var open = root.querySelector('[data-fe-open]');\n    var portrait = root.querySelector('[data-fe-portrait]');\n    var still = matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n    // pin under the site header that stays stuck at the top\n    var stuck = function () {\n      var h = 0;\n      document.querySelectorAll('.shopify-section-group-header-group').forEach(function (sec) {\n        var pos = getComputedStyle(sec).position;\n        if (pos === 'sticky' || pos === 'fixed') h = Math.max(h, sec.offsetHeight);\n      });\n      root.style.setProperty('--header-h', Math.round(Math.min(h, 160)) + 'px');\n    };\n    stuck();\n    addEventListener('resize', stuck);\n\n    // Each sheet covers 58% of the stage; the tear line is drawn in the sheet's own box\n    var tearTo = null;\n    if (top && bottom) {\n      var line = tear(7, 90);\n      // top sheet: its lower edge is the tear (line y mapped into the sheet, which spans 0..58%)\n      var topPoly = ['0% 0%', '100% 0%'].concat(line.slice().reverse().map(function (p) { return p[0] + '% ' + ((p[1] / 58) * 100).toFixed(2) + '%'; })).join(',');\n      // bottom sheet: its upper edge is the same tear (stage y 42..100% mapped to 0..100%)\n      var botPoly = line.map(function (p) { return p[0] + '% ' + (((p[1] - 42) / 58) * 100).toFixed(2) + '%'; }).concat(['100% 100%', '0% 100%']).join(',');\n      top.style.clipPath = 'polygon(' + topPoly + ')';\n      bottom.style.clipPath = 'polygon(' + botPoly + ')';\n      // the paper inside sits a hair inside the sheet edge, leaving a pale torn fibre showing\n      var inset = function (poly, dy) { return poly.replace(/(\\d+(?:\\.\\d+)?)% (\\d+(?:\\.\\d+)?)%/g, function (m, x, y) { return x + '% ' + Math.min(100, Math.max(0, parseFloat(y) + dy)).toFixed(2) + '%'; }); };\n      var topPaper = top.querySelector('.fe__paper'), botPaper = bottom.querySelector('.fe__paper');\n      // the paper pulls back from the edge only where it has already torn, so the pale torn\n      // fibres run behind the tear as it travels across the sheet\n      var fibres = function (front) {\n        var t = line.slice().reverse().map(function (p) { var d = p[0] <= front ? 0.55 + 0.35 * Math.min(1, (front - p[0]) / 12) : 0; return p[0] + '% ' + Math.max(0, (p[1] / 58) * 100 - d).toFixed(2) + '%'; });\n        var b = line.map(function (p) { var d = p[0] <= front ? 0.55 + 0.35 * Math.min(1, (front - p[0]) / 12) : 0; return p[0] + '% ' + Math.min(100, ((p[1] - 42) / 58) * 100 + d).toFixed(2) + '%'; });\n        topPaper.style.clipPath = 'polygon(0% 0%,100% 0%,' + t.join(',') + ')';\n        botPaper.style.clipPath = 'polygon(' + b.join(',') + ',100% 100%,0% 100%)';\n      };\n      fibres(-1);\n      var lastFront = null;\n      // p 0..1: the first half rips the sheet from the left edge to the right, the halves\n      // gaping open from the left; the second half pulls the two halves away\n      tearTo = function (p) {\n        var rip = Math.min(1, p / 0.5), pull = Math.max(0, (p - 0.5) / 0.5);\n        var e = pull * pull * (3 - 2 * pull);\n        var front = rip * 104 - 2;\n        if (lastFront === null || Math.abs(front - lastFront) > 0.4 || rip === 1 || rip === 0) { fibres(rip === 0 ? -1 : front); lastFront = front; }\n        var gape = 3.2 * Math.pow(rip, 1.4);\n        top.style.transform = 'translateY(' + (-106 * e).toFixed(2) + '%) rotate(' + (gape + 2.5 * e).toFixed(3) + 'deg)';\n        bottom.style.transform = 'translateY(' + (106 * e).toFixed(2) + '%) rotate(' + (-gape - 2 * e).toFixed(3) + 'deg)';\n        var sh = (0.04 + 0.3 * rip).toFixed(3);\n        top.style.filter = 'drop-shadow(0 ' + (2 + 10 * rip).toFixed(1) + 'px ' + (4 + 12 * rip).toFixed(1) + 'px rgba(0, 0, 0, ' + sh + '))';\n        bottom.style.filter = 'drop-shadow(0 ' + (-2 - 8 * rip).toFixed(1) + 'px ' + (4 + 12 * rip).toFixed(1) + 'px rgba(0, 0, 0, ' + sh + '))';\n        root.classList.toggle('is-torn', p > 0.02);\n      };\n    }\n\n    book(root);\n\n    var videos = [].slice.call(root.querySelectorAll('[data-fe-video]'));\n    if ('IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function (es) {\n        es.forEach(function (e) { if (e.isIntersecting && !still) { var p = e.target.play(); if (p && p.catch) p.catch(function () {}); } else { e.target.pause(); } });\n      }, { threshold: 0.4 });\n      videos.forEach(function (v) { io.observe(v); });\n    }\n\n    // The opening is driven straight from where the stage is on screen, read live every\n    // frame (the page above keeps settling as films and images load, so positions measured\n    // once go stale). A short, smooth follow keeps the paper from snapping.\n    var stage = root.querySelector('.fe__stage');\n    var intro = [].slice.call(root.querySelectorAll('.fe__intro > *'));\n    var clamp01 = function (v) { return v < 0 ? 0 : v > 1 ? 1 : v; };\n    function openTarget() {\n      var stick = parseFloat(getComputedStyle(stage).top) || 0;\n      var r = open.getBoundingClientRect();\n      return clamp01((stick - r.top) / Math.max(1, open.offsetHeight - stage.offsetHeight));\n    }\n    function paint(p) {\n      // 0..0.75: the tear and the parting; then the opening picture holds for the last stretch\n      if (tearTo) tearTo(clamp01(p / 0.75));\n      if (portrait) portrait.style.setProperty('--sep', (0.85 * (1 - clamp01((p - 0.5) / 0.3))).toFixed(3));\n      // his words rise in one by one as the halves part\n      intro.forEach(function (el, i) {\n        var o = clamp01((p - 0.48 - i * 0.05) / 0.14);\n        el.style.opacity = o.toFixed(3);\n        el.style.transform = o < 1 ? 'translateY(' + ((1 - o) * 24).toFixed(1) + 'px)' : '';\n      });\n    }\n    if (still) {\n      if (portrait) portrait.style.setProperty('--sep', '0');\n    } else if (open && stage) {\n      var shownP = openTarget(), targetP = shownP, following = false;\n      paint(shownP);\n      var follow = function () {\n        following = true;\n        var last = performance.now();\n        requestAnimationFrame(function step(now) {\n          var dt = Math.min(0.05, (now - last) / 1000);\n          last = now;\n          var d = targetP - shownP;\n          shownP += d * Math.min(1, dt * 9);\n          if (Math.abs(d) < 0.0006) { shownP = targetP; following = false; paint(shownP); return; }\n          paint(shownP);\n          requestAnimationFrame(step);\n        });\n      };\n      var onOpen = function () {\n        targetP = openTarget();\n        // a big jump (a link, a reload part-way down) lands at once instead of replaying\n        if (Math.abs(targetP - shownP) > 0.5) { shownP = targetP; paint(shownP); return; }\n        if (!following) follow();\n      };\n      addEventListener('scroll', onOpen, { passive: true });\n      addEventListener('resize', onOpen);\n    }\n\n    var gsap = window.gsap, ST = window.ScrollTrigger;\n    if (!gsap || !ST || still) return;\n    gsap.registerPlugin(ST);\n\n    root.querySelectorAll('[data-fe-ch]').forEach(function (ch) {\n      gsap.from(ch.children, { y: 40, opacity: 0, duration: 1, stagger: 0.12, ease: 'power3.out', scrollTrigger: { trigger: ch, start: 'top 82%', once: true } });\n    });\n  }\n\n  /*\n   * The chapters as a book that turns as you scroll. It carries on from the\n   * opening screen: a closed leather cover on the same ink, which opens, then each leaf\n   * turns over on its spine (a spread on wide screens, one page at a time on phones).\n   * The pages age forward: archive paper and sepia prints first, ink and film last.\n   * Swipe, tap, the arrows and the keys scroll to the matching page.\n   */\n  function book(root) {\n    var wrap = root.querySelector('[data-fe-book]');\n    var host = wrap && wrap.querySelector('[data-fe-book-pages]');\n    var chs = [].slice.call(root.querySelectorAll('[data-fe-ch]'));\n    if (!host || chs.length < 2) return;\n    var n = chs.length;\n    var still = matchMedia('(prefers-reduced-motion: reduce)').matches;\n    var data = chs.map(function (li) {\n      var m = li.className.match(/fe-ch--(old|mid|new)/);\n      return { era: m ? m[1] : 'old', media: li.querySelector('.fe-ch__media'), copy: li.querySelector('.fe-ch__copy') };\n    });\n    var wide = matchMedia('(min-width: 900px)');\n    var leaves = [], s = -1, inView = false, m = n, end = false;\n    var cover = wrap.querySelector('[data-fe-cover]');\n\n    function media(d) {\n      var box = document.createElement('div');\n      [].slice.call(d.media.children).forEach(function (c) {\n        var k = c.cloneNode(true);\n        if (k.tagName === 'VIDEO') { k.muted = true; k.preload = 'none'; k.removeAttribute('data-fe-video'); k.setAttribute('data-fe-book-video', ''); }\n        box.appendChild(k);\n      });\n      // sources wait in data attributes until the page is near (see wake)\n      [].slice.call(box.querySelectorAll('img, video')).forEach(function (m) {\n        ['src', 'srcset'].forEach(function (a) { if (m.getAttribute(a)) { m.setAttribute('data-fe-' + a, m.getAttribute(a)); m.removeAttribute(a); } });\n        if (m.tagName === 'IMG') m.draggable = false;\n      });\n      return box;\n    }\n    function page(cls, era) { var p = document.createElement('div'); p.className = 'fe-page ' + cls + ' is-' + era; return p; }\n    // the printed furniture of a book page: a running header and the folio (page number)\n    function marker(i) { var m = data[i].copy.querySelector('.fe-ch__marker'); return m ? m.textContent.trim() : ''; }\n    function furnish(p, head, folio) {\n      var h = document.createElement('span'); h.className = 'fe-page__run'; h.textContent = head; p.appendChild(h);\n      var f = document.createElement('span'); f.className = 'fe-page__folio'; f.textContent = folio; p.appendChild(f);\n    }\n    function photo(i) {\n      var p = page('fe-page--photo', data[i].era), m = media(data[i]);\n      var film = !!m.querySelector('video');\n      // films, and every picture on the last (modern) pages, stand as framed 9:16 prints\n      m.className = 'fe-print' + (film || data[i].era === 'new' ? ' is-916' : '');\n      if (film) p.classList.add('has-film');\n      p.appendChild(m);\n      furnish(p, 'The book of the house', String(2 * i + 2));\n      return p;\n    }\n    function words(i) {\n      var p = page('fe-page--text', data[i].era);\n      [].slice.call(data[i].copy.children).forEach(function (c) { p.appendChild(c.cloneNode(true)); });\n      furnish(p, 'Chapter ' + (i + 1) + (marker(i) ? ' \\u00b7 ' + marker(i) : ''), String(2 * i + 3));\n      return p;\n    }\n    function single(i) {\n      var p = page('fe-page--single', data[i].era), m = media(data[i]);\n      m.className = 'fe-page__media';\n      if (m.querySelector('video')) p.classList.add('has-film');\n      p.appendChild(m);\n      var c = document.createElement('div'); c.className = 'fe-page__copy';\n      [].slice.call(data[i].copy.children).forEach(function (k) { c.appendChild(k.cloneNode(true)); });\n      // a film page shows the film as a 9:16 frame with its words laid over the foot\n      (p.classList.contains('has-film') ? m : p).appendChild(c);\n      furnish(p, 'Chapter ' + (i + 1), String(i + 1));\n      return p;\n    }\n    // the last words of the book, on the left page opposite the endpaper\n    function ending() {\n      var p = page('fe-page--end', 'new');\n      // the words come from the section settings (a template in the section)\n      var tpl = root.querySelector('template[data-fe-end]');\n      if (tpl) p.appendChild(tpl.content.cloneNode(true));\n      else p.innerHTML = '<p class=\"fe-end__mark\"></p><p class=\"fe-end__title\">The story continues</p>';\n      var mark = p.querySelector('.fe-end__mark');\n      if (mark && !mark.textContent.trim()) mark.textContent = marker(n - 1) || '';\n      [].slice.call(p.querySelectorAll('p')).forEach(function (el) { if (!el.textContent.trim()) el.remove(); });\n      furnish(p, 'The book of the house', String(2 * n + 2));\n      return p;\n    }\n    // the back of the book: the same leather, the house mark alone\n    function backCover() {\n      var b = cover.cloneNode(true);\n      b.hidden = false;\n      b.classList.add('fe-cover--back');\n      var logo = b.querySelector('.fe-cover__logo');\n      var frame = b.querySelector('.fe-cover__frame');\n      if (frame) { frame.innerHTML = ''; if (logo) frame.appendChild(logo); }\n      return b;\n    }\n    function face(side, content) {\n      var f = document.createElement('div');\n      f.className = 'fe-face fe-face--' + side;\n      if (content) f.appendChild(content);\n      return f;\n    }\n    function leafOf(front, back) {\n      var l = document.createElement('div');\n      l.className = 'fe-leaf';\n      front.classList.add('fe-face--front'); back.classList.add('fe-face--back');\n      l.appendChild(front); l.appendChild(back);\n      host.appendChild(l);\n      leaves.push(l);\n    }\n\n    // leaf 0 is the cover; then one leaf per chapter. Both layouts have n + 1 leaves and\n    // n + 1 resting states: 0 is the closed cover, k shows chapter k.\n    function build() {\n      host.innerHTML = '';\n      leaves = [];\n      var spread = wide.matches;\n      wrap.classList.toggle('fe-book--single', !spread);\n      var c = cover.cloneNode(true); c.hidden = false;\n      leafOf(face('right', c), face('left', spread ? photo(0) : page('fe-page--blank', 'old')));\n      for (var i = 0; i < n; i++) {\n        leafOf(face('right', spread ? words(i) : single(i)),\n          face('left', spread ? (i < n - 1 ? photo(i + 1) : ending()) : page('fe-page--blank', data[i].era)));\n      }\n      // on the spread the last leaf closes the book: a blank endpaper, then the back cover\n      if (spread) leafOf(face('right', page('fe-page--blank', 'new')), face('left', backCover()));\n      // resting states: 0 is the closed cover, k has k leaves turned; with the closing leaf\n      // the last state is every leaf turned, the book shut on its back cover\n      end = spread;\n      m = spread ? leaves.length : n;\n      ['l', 'r'].forEach(function (side) {\n        var e = document.createElement('i'); e.className = 'fe-edge fe-edge--' + side; e.setAttribute('aria-hidden', 'true'); host.appendChild(e);\n        var c = document.createElement('i'); c.className = 'fe-cast fe-cast--' + side; c.setAttribute('aria-hidden', 'true'); host.appendChild(c);\n      });\n      s = -1;\n      var hint = wrap.querySelector('.fe-book__hint');\n      if (hint) hint.textContent = spread ? 'Keep scrolling to turn the pages' : 'Swipe or tap the page to turn it';\n      measure();\n      if (spread) frame();\n      else { tweenId++; shown = target = Math.max(0, Math.min(m, Math.round(target))); draw(); }\n    }\n\n    // the chapter rail: one marker per chapter, each a way back to its page\n    var rail = wrap.querySelector('[data-fe-book-rail]');\n    if (rail) {\n      rail.innerHTML = data.map(function (d, i) {\n        var m = d.copy.querySelector('.fe-ch__marker');\n        return '<li><button type=\"button\" data-fe-go=\"' + (i + 1) + '\">' + (m ? m.textContent.trim() : ('0' + (i + 1)).slice(-2)) + '</button></li>';\n      }).join('');\n      rail.addEventListener('click', function (e) { var b = e.target.closest('[data-fe-go]'); if (b) go(+b.dataset.feGo); });\n    }\n\n    // load a page's photographs and films only when it is about to be seen\n    function wake(i) {\n      var l = leaves[i];\n      if (!l || l._awake) return;\n      l._awake = true;\n      [].slice.call(l.querySelectorAll('[data-fe-src], [data-fe-srcset]')).forEach(function (m) {\n        if (m.dataset.feSrcset) m.setAttribute('srcset', m.dataset.feSrcset);\n        if (m.dataset.feSrc) m.setAttribute('src', m.dataset.feSrc);\n        if (m.tagName === 'VIDEO') { m.preload = 'auto'; m.load(); }\n      });\n    }\n\n    // once the book is near, load every page's photographs so no page ever turns onto an empty print\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(function (entries, io) {\n        if (entries.some(function (e) { return e.isIntersecting; })) {\n          io.disconnect();\n          leaves.forEach(function (_, i) { wake(i); });\n        }\n      }, { rootMargin: '1200px 0px' }).observe(wrap);\n    } else {\n      leaves.forEach(function (_, i) { wake(i); });\n    }\n\n    // scroll position \u2192 fractional page; each turn happens in the middle of its stretch so\n    // every page rests for a moment\n    var run = wrap.querySelector('[data-fe-book-run]');\n    // the sticky offset and the scroll span only change on resize; the book's position is\n    // read live (one rect per frame) because the page above keeps settling as images load\n    var stickTop = 0, span = 1;\n    function headerBottom() {\n      // the site header that stays stuck to the top as the page scrolls\n      var stuck = 0;\n      document.querySelectorAll('.shopify-section-group-header-group').forEach(function (sec) {\n        var pos = getComputedStyle(sec).position;\n        if (pos === 'sticky' || pos === 'fixed') stuck = Math.max(stuck, sec.offsetHeight);\n      });\n      if (stuck) return Math.round(Math.min(stuck, 160));\n      var h = 0, el = document.elementFromPoint(Math.round(innerWidth / 2), 2);\n      while (el && el !== document.body) {\n        var pos = getComputedStyle(el).position;\n        if (pos === 'fixed' || pos === 'sticky') h = Math.max(h, el.getBoundingClientRect().bottom);\n        el = el.parentElement;\n      }\n      return Math.round(Math.min(h, 160));\n    }\n    function measure() {\n      wrap.style.setProperty('--header-h', headerBottom() + 'px');\n      stickTop = parseFloat(getComputedStyle(wrap.querySelector('.fe-book__sticky')).top) || 0;\n      span = Math.max(1, run.offsetHeight - (innerHeight - stickTop));\n      fitTitle();\n    }\n    // the book's name stays on one line in the space left of the closed book\n    function fitTitle() {\n      var title = wrap.querySelector('.fe-book__kicker');\n      if (!title || !wide.matches) { if (title) title.style.removeProperty('font-size'); return; }\n      var r = host.getBoundingClientRect();\n      var tx = new DOMMatrixReadOnly(getComputedStyle(host).transform).m41;\n      var bookLeft = r.left - tx + r.width * 0.25;\n      title.style.removeProperty('font-size');\n      var t = title.getBoundingClientRect();\n      var room = bookLeft - t.left - 40;\n      var size = parseFloat(getComputedStyle(title).fontSize);\n      if (t.width > room) size = Math.max(0, size * room / t.width);\n      title.style.setProperty('font-size', size.toFixed(1) + 'px', 'important');\n      title.style.visibility = size < 18 ? 'hidden' : '';\n    }\n    function progress() { return Math.max(0, Math.min(1, (stickTop - run.getBoundingClientRect().top) / span)) * m; }\n    function ease(t) { t = Math.max(0, Math.min(1, (t - 0.18) / 0.64)); return t * t * (3 - 2 * t); }\n\n    var shown = 0, target = 0, gliding = false, tweenId = 0;\n    // phones: the book sits in the page like a picture and turns on its own, one smooth turn\n    // per page (swipe, tap, the arrows or a chapter dot), instead of being pinned to the scroll\n    function turnTo(t) {\n      var from = shown, start = performance.now(), id = ++tweenId;\n      var dur = Math.min(1600, 700 * Math.max(1, Math.abs(t - from)));\n      if (still) { shown = t; draw(); return; }\n      requestAnimationFrame(function step(now) {\n        if (id !== tweenId) return;\n        var k = Math.min(1, (now - start) / dur);\n        var e = k < 0.5 ? 2 * k * k : 1 - Math.pow(-2 * k + 2, 2) / 2;\n        shown = from + (t - from) * e;\n        draw();\n        if (k < 1) requestAnimationFrame(step);\n      });\n    }\n    // the page the book is on or turning to: on phones a second tap mid-turn goes one further\n    function cur() { return wide.matches ? s : Math.round(target); }\n    function frame() {\n      target = progress();\n      if (still || Math.abs(target - shown) > m * 0.6) { shown = target; draw(); return; }\n      if (!gliding) glide();\n    }\n    // follow the scroll with a little inertia, so every turn is one smooth motion\n    function glide() {\n      gliding = true;\n      var last = performance.now();\n      requestAnimationFrame(function step(now) {\n        var dt = Math.min(0.05, (now - last) / 1000);\n        last = now;\n        var d = target - shown;\n        shown += d * Math.min(1, dt * 10);\n        if (Math.abs(d) < 0.0005) { shown = target; gliding = false; draw(); return; }\n        draw();\n        requestAnimationFrame(step);\n      });\n    }\n    function draw() {\n      var p = shown, k = Math.floor(p), t = ease(p - k);\n      if (k >= m) { k = m; t = 0; }\n      leaves.forEach(function (l, i) {\n        var a = i < k ? -180 : i === k ? -180 * t : 0;\n        l.style.transform = 'rotateY(' + a.toFixed(2) + 'deg)';\n        l.style.setProperty('--shade', i === k ? Math.sin(Math.PI * t).toFixed(3) : '0');\n        l.style.zIndex = String(i === k && t > 0 ? 1000 : i < k ? i + 1 : 2 * (n + 1) - i);\n      });\n      // closed, the cover sits in the middle of the spread; it slides left as it opens.\n      // At the end the last leaf closes it again onto the back cover, which slides back to\n      // the middle from the right.\n      var closing = end && k >= m - 1;\n      var open = k === 0 ? t : closing ? (k === m - 1 ? 1 - t : 0) : 1;\n      host.style.setProperty('--open', open.toFixed(3));\n      host.style.setProperty('--side', closing ? '1' : '-1');\n      wrap.style.setProperty('--open', open.toFixed(3));\n      // beside the closed book the title stands alone; it gives way as the cover opens\n      var title = wrap.querySelector('.fe-book__kicker');\n      if (title) title.style.opacity = wide.matches ? String(closing ? Math.max(0, 1 - open * 8) : Math.max(0, 1 - open * 1.8)) : '';\n      host.style.setProperty('--done', ((k + t) / m).toFixed(3));\n      // the stacks of page edges show only where there are pages: none on the left until the\n      // first page has turned, none on the right once the last one is turning\n      host.style.setProperty('--left', k >= 1 ? '1' : '0');\n      host.style.setProperty('--right', end && k >= m - 1 ? '0' : '1');\n      // first half of a turn the leaf hangs over the right page, second half over the left\n      var lift = k < m ? Math.sin(Math.PI * t) : 0;\n      host.style.setProperty('--cast-r', (t > 0 && t <= 0.5 ? lift : 0).toFixed(3));\n      host.style.setProperty('--cast-l', (t > 0.5 ? lift : 0).toFixed(3));\n      var now = Math.min(m, k + (t > 0.5 ? 1 : 0));\n      if (now !== s) settle(now);\n    }\n    function settle(now) {\n      s = now;\n      wrap.dataset.era = s === 0 || (end && s === m) ? 'cover' : data[Math.min(n, s) - 1].era;\n      wrap.querySelector('[data-fe-book-no]').textContent = ('0' + Math.min(n, Math.max(1, s))).slice(-2);\n      wrap.classList.toggle('is-closed', s === 0 || (end && s === m));\n      for (var w = s - 1; w <= s + 2; w++) wake(w);\n      if (rail) [].slice.call(rail.querySelectorAll('button')).forEach(function (b, i) { b.classList.toggle('is-on', i + 1 === s); b.classList.toggle('is-past', i + 1 < s); });\n      // the open chapter's name, shown on phones as one caption under the whole rail\n      if (rail) { var onB = rail.querySelector('button.is-on'); rail.setAttribute('data-label', onB ? onB.textContent.trim() : ''); }\n      wrap.querySelector('[data-fe-book-prev]').disabled = s === 0;\n      wrap.querySelector('[data-fe-book-next]').disabled = s >= m;\n      // only the films on the open pages play\n      host.querySelectorAll('[data-fe-book-video]').forEach(function (v) {\n        var i = leaves.indexOf(v.closest('.fe-leaf')), back = !!v.closest('.fe-face--back');\n        var open = wide.matches ? (back ? i === s - 1 : i === s) : (!back && i === s);\n        if (open && !still && inView) { var pr = v.play(); if (pr && pr.catch) pr.catch(function () {}); } else v.pause();\n      });\n    }\n    function go(t) {\n      t = Math.max(0, Math.min(m, t));\n      if (!wide.matches) { target = t; turnTo(t); return; }\n      measure();\n      var runTop = run.getBoundingClientRect().top + scrollY - stickTop;\n      scrollTo({ top: runTop + (t / m) * span + (t === m ? 0 : 2), behavior: still ? 'auto' : 'smooth' });\n    }\n\n    var ticking = false;\n    function onScroll() { if (ticking || !wide.matches) return; ticking = true; requestAnimationFrame(function () { ticking = false; frame(); }); }\n    addEventListener('scroll', onScroll, { passive: true });\n    addEventListener('resize', function () { measure(); onScroll(); });\n    if (document.fonts && document.fonts.ready) document.fonts.ready.then(function () { measure(); });\n    addEventListener('load', measure);\n    if ('IntersectionObserver' in window) {\n      new IntersectionObserver(function (es) { inView = es[0].isIntersecting; var k = s; s = -1; settle(k < 0 ? 0 : k); }, { threshold: 0.3 }).observe(host);\n    }\n\n    // a swipe or tap turns one page (by scrolling to it)\n    var sx = 0, sy = 0, down = false;\n    host.addEventListener('pointerdown', function (e) { if (e.button > 0 || e.target.closest('a, button')) return; down = true; sx = e.clientX; sy = e.clientY; });\n    host.addEventListener('pointerup', function (e) {\n      if (!down) return;\n      down = false;\n      var dx = e.clientX - sx, dy = e.clientY - sy;\n      if (Math.abs(dy) > Math.abs(dx) && Math.abs(dy) > 10) return;\n      if (Math.abs(dx) > 40) { go(cur() + (dx < 0 ? 1 : -1)); return; }\n      if (Math.abs(dx) < 8) { var r = host.getBoundingClientRect(); go(cur() + (e.clientX - r.left > r.width / 2 ? 1 : -1)); }\n    });\n    host.addEventListener('pointercancel', function () { down = false; });\n    host.addEventListener('keydown', function (e) {\n      if (e.key === 'ArrowRight') { e.preventDefault(); go(cur() + 1); }\n      if (e.key === 'ArrowLeft') { e.preventDefault(); go(cur() - 1); }\n    });\n    wrap.querySelector('[data-fe-book-next]').addEventListener('click', function () { go(cur() + 1); });\n    wrap.querySelector('[data-fe-book-prev]').addEventListener('click', function () { go(cur() - 1); });\n    if (wide.addEventListener) wide.addEventListener('change', build);\n\n    wrap.hidden = false;\n    root.classList.add('has-book');\n    chs.forEach(function (li) { [].slice.call(li.querySelectorAll('video')).forEach(function (v) { v.pause(); if (v.getAttribute('src')) v.setAttribute('data-fe-src', v.getAttribute('src')); v.removeAttribute('src'); v.preload = 'none'; v.load(); }); });\n    build();\n  }\n\n  function boot() { document.querySelectorAll('founder-era').forEach(function (r) { if (!r._fe) { r._fe = true; init(r); } }); }\n  if (!customElements.get('founder-era')) customElements.define('founder-era', class extends HTMLElement {});\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot); else boot();\n})();\n"],
  "mappings": "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",
  "names": ["m", "frame", "c", "pos"]
}
