Files
hyperframes/packages/producer/dist/hyperframe.runtime.iife.js
T
38efe168e2 refactor(studio): contexts, PropertyPanel split, duration fix, perf (#748)
* feat(studio): add manual DOM editing inspector (#466)

* fix: stabilize studio preview and runtime sync

* fix: pass selector through timeline thumbnails

* feat: add studio timeline editing

* fix: disambiguate timeline edit targets

* fix: stop timeline auto-scroll in fit mode

* feat: use percentage-based timeline zoom

* fix: sync timeline playhead on zoom changes

* fix: reset timeline scroll when returning to fit

* feat(studio): add manual DOM editing inspector

* docs: update studio manual dom editing guide

* feat(studio): add image asset picker for fills

* feat(studio): add inline image uploads for fills

* fix(studio): use real file input for image fill uploads

* fix(studio): restore toast plumbing after rebase

* fix(studio): explain in-app upload limitation

* fix(studio): reuse asset-tab upload pattern in fills

* feat(studio): refine manual design inspector

* fix(studio): polish manual design inspector

* fix(studio): keep color picker in viewport

* fix(studio): clarify color picker selection

* docs: update manual DOM editing guide

* fix(studio): keep gradient color picker open

* fix(studio): scope text color to text layers

* fix(studio): add agent fallback for immovable layers

* fix(studio): address manual editing review feedback

* fix(studio): make local font selection reliable

* fix(studio): improve dom picking and thumbnails

* fix(studio): copy absolute paths in agent prompts

* fix(studio): prevent timeline track cutoff

* fix: copy Studio agent prompts in Safari

* fix(studio): hold canvas movement from inspector

* feat(studio): add persistent undo redo (#537)

Studio manual editing and timeline editing mutate project files directly, but those edits had no reliable undo/redo path. Before releasing manual editing, users need a way to recover from visual property changes, source-editor saves, timeline moves/resizes/deletes, and timeline asset drops.

The history also needs to survive a page refresh. A refresh should not erase the only way back from a bad manual edit.

- Adds a persistent per-project edit-history model for file snapshots.
- Stores undo/redo stacks in IndexedDB so history survives Studio refreshes.
- Records source editor saves, manual DOM edits, and timeline mutations.
- Adds toolbar undo/redo buttons with standard keyboard shortcuts: `Cmd/Ctrl+Z`, `Cmd/Ctrl+Shift+Z`, and `Ctrl+Y`.
- Validates current file hashes before applying undo/redo so external file changes do not silently overwrite newer content.
- Keeps history available in memory if IndexedDB persistence fails during a session.
- Adds focused unit coverage for the pure history model, storage adapter, controller/hook behavior, and project-file save helper.

Studio previously treated every editor mutation as an immediate file write. Manual DOM editing, timeline updates, and source-editor saves each had separate write paths, so there was no common transaction boundary where Studio could capture the file contents before and after an edit.

Undo/redo needed to sit above those write paths as a file-level transaction system: capture changed files before saving, write the new contents, persist the history entry by project, then apply undo/redo only when the current file content still matches the expected snapshot.

- `bun --filter @hyperframes/studio test src/utils/editHistory.test.ts src/utils/editHistoryStorage.test.ts src/hooks/usePersistentEditHistory.test.ts src/utils/studioFileHistory.test.ts` -> 4 files pass, 15 tests pass
- `bun --filter @hyperframes/studio test` -> 26 files pass, 289 tests pass
- `bun --filter @hyperframes/studio typecheck`
- `bunx oxlint packages/studio/src/App.tsx packages/studio/src/icons/SystemIcons.tsx packages/studio/src/hooks/usePersistentEditHistory.ts packages/studio/src/hooks/usePersistentEditHistory.test.ts packages/studio/src/utils/editHistory.ts packages/studio/src/utils/editHistory.test.ts packages/studio/src/utils/editHistoryStorage.ts packages/studio/src/utils/editHistoryStorage.test.ts packages/studio/src/utils/studioFileHistory.ts packages/studio/src/utils/studioFileHistory.test.ts` -> 0 warnings, 0 errors
- `bunx oxfmt --check packages/studio/src/App.tsx packages/studio/src/icons/SystemIcons.tsx packages/studio/src/hooks/usePersistentEditHistory.ts packages/studio/src/hooks/usePersistentEditHistory.test.ts packages/studio/src/utils/editHistory.ts packages/studio/src/utils/editHistory.test.ts packages/studio/src/utils/editHistoryStorage.ts packages/studio/src/utils/editHistoryStorage.test.ts packages/studio/src/utils/studioFileHistory.ts packages/studio/src/utils/studioFileHistory.test.ts`
- `git diff --check`
- `bun run --filter @hyperframes/core build:hyperframes-runtime` before commit hook, because the clean worktree needed the ignored runtime-inline artifact for typecheck
- Lefthook pre-commit -> lint, format, typecheck pass
- Lefthook commit-msg -> commitlint pass

- Started Studio locally at `http://127.0.0.1:5190/#project/undo-redo-sample`.
- Used `agent-browser` to select a preview element in the Inspector and change `#hero-card` from `left: 220px` to `left: 260px`.
- Refreshed Studio and verified Undo stayed enabled.
- Clicked Undo and verified the project file returned to `left: 220px`; clicked Redo and verified the inline `left: 260px` returned.
- Used `agent-browser` to drag the `side-card` timeline clip, refreshed Studio, then verified Undo restored the previous timeline attributes and Redo reapplied the timeline move.
- Recorded the tested undo/redo flow with `agent-browser`: `qa-artifacts/studio-undo-redo-2026-04-28/studio-undo-redo-flow.webm`.

- Local screenshots and recordings are kept under `qa-artifacts/studio-undo-redo-2026-04-28/` and are intentionally not committed.
- The scratch Studio project used for browser proof is local-only under `packages/studio/data/projects/undo-redo-sample/` and is intentionally not committed.
- The PR intentionally excludes the earlier PRD/TDD planning notes under `docs/superpowers/`; those remain local-only per request.

* fix: align Studio capture with preview (#595)

Studio frame capture could fail for projects mounted outside the repo when the project id came from an encoded hash route. A project like `Notion Showcase` loaded as `#project/Notion%20Showcase`, but the capture URL encoded that already-encoded value again, producing `/api/projects/Notion%2520Showcase/...` and a 404.

While validating the fix by seeking through the preview, capture also diverged from the visible player for nested compositions because the thumbnail route sought raw timelines instead of the same player seek path used by Studio preview.

- Decodes project ids when reading Studio `#project/...` routes and centralizes project hash/API path construction.
- Keeps API URLs encoded exactly once, including project names with spaces, literal `%`, reserved characters, and unicode.
- Updates Studio thumbnail capture to prefer `window.__player.seek(t)` and only fall back to raw timeline seeking for standalone pages.
- Preserves explicit `t=0` thumbnail requests instead of falling back to `0.5` seconds.
- Adds preview-regression CI coverage for Studio routing, frame capture URL construction, thumbnail seeking, and core thumbnail seek parsing.

Studio treated the hash route segment as the canonical project id even when the browser had already percent-encoded it. `buildFrameCaptureUrl` then encoded that string again, so a decoded project directory name and the capture API path no longer matched.

The preview/capture mismatch was a separate seek-path issue: the visible Studio preview seeks through the HyperFrames player, which maps global time into nested composition time. The capture route bypassed that layer and paused all registered timelines at the same global time.

The zero-second capture case came from parsing `t` with a truthiness fallback, so `parseFloat("0") || 0.5` became `0.5`.

- `bun run --cwd packages/studio test -- vite.thumbnail.test.ts src/utils/projectRouting.test.ts src/utils/frameCapture.test.ts`
- `bun run --cwd packages/core test -- src/studio-api/routes/thumbnail.test.ts`
- `bunx oxfmt --check .github/workflows/preview-regression.yml packages/studio/vite.thumbnail.ts packages/studio/vite.thumbnail.test.ts packages/studio/vite.config.ts packages/studio/src/utils/projectRouting.ts packages/studio/src/utils/projectRouting.test.ts packages/studio/src/utils/frameCapture.ts packages/studio/src/App.tsx packages/core/src/studio-api/routes/thumbnail.ts packages/core/src/studio-api/routes/thumbnail.test.ts`
- `bunx oxlint .github/workflows/preview-regression.yml packages/studio/vite.thumbnail.ts packages/studio/vite.thumbnail.test.ts packages/studio/vite.config.ts packages/studio/src/utils/projectRouting.ts packages/studio/src/utils/projectRouting.test.ts packages/studio/src/utils/frameCapture.ts packages/studio/src/App.tsx packages/core/src/studio-api/routes/thumbnail.ts packages/core/src/studio-api/routes/thumbnail.test.ts`
- `bun run --cwd packages/studio typecheck`
- `bun run --cwd packages/core build:hyperframes-runtime`
- `bun run --cwd packages/core typecheck`
- `git diff --check`

Pre-commit also reran lint, format, and typecheck successfully for the committed files.

Using `agent-browser`, I mounted `/Users/miguel07code/Downloads/Notion Showcase` into Studio's project data and opened:

```text
http://127.0.0.1:5197/#project/Notion%20Showcase
```

Before the fix, Capture requested `/api/projects/Notion%2520Showcase/thumbnail/index.html?...` and Studio showed `Capture failed`.

After the fix, I sought the preview to `0s`, `2s`, `10s`, and `18s`, captured each frame, and compared the visible preview crop against the capture output. The capture URLs all used `Notion%20Showcase`, not `Notion%2520Showcase`, and no failure toast appeared.

Mean pixel diffs for preview vs capture were:

- `0s`: `0.0`
- `2s`: `0.8641`
- `10s`: `0.3496`
- `18s`: `0.2309`

The small non-zero diffs are raster/antialias-level differences after resizing the capture to the preview crop dimensions.

- Browser screenshots, comparison sheets, network logs, and the `agent-browser` recording are local-only under `qa-artifacts/capture-button/` and are not committed.
- The local Notion Showcase project mount is an ignored symlink under `packages/studio/data/projects/` and is not committed.
- Thumbnail cache versions were bumped so stale captures generated with the old seek behavior are not reused.

* feat: persist studio manual edits via manifest

* fix(studio): stabilize manual edit manifest rendering

* fix(studio): allow master canvas layer selection

* fix(studio): scale master edits in source coordinates

* fix(studio): reapply manual edits during playback

* fix(studio): keep rotation edit base stable

* feat(studio): highlight hovered canvas target

* fix(studio): drag hovered canvas targets immediately

* fix(studio): rotate manual edits around center

* fix(studio): keep rotate handle aligned while dragging

* fix(studio): allow small rotation adjustments

* fix(studio): match rotate handle size to resize handle

* fix(studio): connect rotate handle line to selection

* feat(studio): reset selected manual edits

* fix(studio): route inspector geometry through manual edits

* feat: add studio group repositioning

* fix: preserve studio group selections

* fix: seed additive studio selection groups

* fix: select studio groups on pointerdown

* fix: harden studio group overlay events

* fix: address studio manual edit review feedback

* fix: apply nested manual edits in drilled previews

* fix: commit drag offsets from gesture math

* fix: persist manual preview edits on refresh

* fix: harden manual edit refresh apply

* fix: share manual edit render runtime

* chore: release v0.5.0-alpha.15

* feat(core): add studio animation preview APIs

* feat(studio): add alpha editor layer inspector

* chore: release v0.6.0-alpha.1

* feat(studio): enable inspector panels by default

* fix(studio): keep motion panel opt-in

* chore: release v0.6.0-alpha.2

* feat: auto-open timeline clip layers

* feat: show composition loading in studio

* feat: disable Studio timeline while composition loads

* chore: ignore .claude directory

* chore: release v0.6.0-alpha.3

* feat(studio): simplify inspector selection ux

* fix(studio): keep notion preview playback moving

* fix(studio): handle raster inspector clicks

* fix(studio): stale selection, rotation control, design panel polish

Fixes and improvements based on power-user testing feedback:

1. Fix stale selection after style edits — handleDomStyleCommit now
   calls refreshDomEditSelectionFromPreview after persisting, matching
   every other commit handler. Without this, the PropertyPanel showed
   frozen computedStyles after color/radius/shadow edits, making it
   look like editing "didn't work." Also adds error handling around
   the persist call.

2. Add rotation field to the Design panel Layout section — reads the
   current rotation angle from the manual edit manifest and commits
   via the existing handleDomRotationCommit handler.

3. Enable motion panel by default — STUDIO_MOTION_PANEL_ENABLED now
   defaults to true so the Motion tab is discoverable without env vars.

4. Color controls only when element has color — fill color section now
   only shows when the element has an explicit non-transparent
   background-color. Text color shows only when the element has a
   color style. Prevents showing color pickers on elements where
   color edits have no visible effect.

5. Exclude canvas from selection — added "canvas" to
   DOM_LAYER_IGNORED_TAGS so canvas elements are not selectable in the
   preview or listed in the layer panel.

6. Multi-selection feedback — shows "N elements selected" with
   guidance instead of the generic empty state when multiple elements
   are selected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): prevent browser launch timeout from crashing dev server

The shared Puppeteer browser pool in getSharedBrowser() could throw a
30s TimeoutError during launch. This error propagated as an uncaught
rejection and killed the vite process, even though generateThumbnail
had its own try/catch — the browser launch promise rejected outside
that scope. Now getSharedBrowser itself catches launch failures and
returns null, so thumbnails degrade gracefully instead of crashing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): revert motion panel default to false

Motion panel stays opt-in via env var per product direction. Only
the Design panel is enabled by default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): prevent read-only property crash in manual edit wrappers

The seek/play/applyAfter wrapper functions in manualEdits.ts crashed
with "Cannot set property X which has only a getter" when the player
or timeline objects define seek/play as getter-only properties. This
prevented ALL manual edits (position, rotation, size) from persisting
to disk — the error thrown during applyCurrentStudioManualEditsToPreview
aborted the save queue.

Wrapped all three property assignments in try/catch so wrapping
gracefully degrades when the target object is non-configurable.

Verified: position edit (X=42px) now persists to
.hyperframes/studio-manual-edits.json and survives page refresh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: alpha preview e2e fixes — exports, init templates, EPIPE crash

Three bugs found via automated e2e testing of the v0.6.0-alpha preview:

1. core: add missing package.json export specifiers for
   studio-api/manual-edits-render-script and
   studio-api/studio-motion-render-script — the alpha.3 npm publish
   failed because the studio build could not resolve these sub-paths.

2. cli: fix init --example creating empty projects — tsup leaves empty
   template directories in dist/ during the build, causing
   existsSync(templateDir) to return true and skip the remote fetch
   fallback. Now checks for index.html inside the dir instead.

3. engine: fix unhandled EPIPE crash in streaming encoder — ffmpeg
   stdin/stdout had no error handlers, so a write after the ffmpeg
   process exits throws an uncaught error that crashes the process.

Verified with 8 consecutive e2e iterations (424 test runs, 0 flaky).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): thumbnail crash, feature defaults, multi-select UX, fps selector

Power-user audit fixes for the alpha studio:

- vite.config.ts: wrap thumbnail generation in try/catch so Puppeteer
  TimeoutError doesn't crash the entire vite dev server as an uncaught
  rejection. Close the page on error to prevent browser session leaks.

- manualEditingAvailability.ts: enable motion panel and manual canvas
  drag editing by default (were both false, undiscoverable without
  knowing the env vars).

- PropertyPanel.tsx: show "N elements selected" feedback when multiple
  elements are selected instead of the generic "Select an element"
  empty state.

- RenderQueue.tsx + App.tsx: add FPS selector (24/30/60) to the render
  export bar instead of hardcoding 30fps. Pass the user's choice
  through to startRender.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: release v0.6.0-alpha.4

* fix(runtime): update clock duration when root timeline is late-bound

Compositions with external sub-compositions (like apple-presentation
with 7 slides) load child compositions via fetch(). The root GSAP
timeline is only bound after all external compositions finish loading,
but the TransportClock duration was only set during initial setup.

When bindRootTimelineIfAvailable runs after the external compositions
load, it captures the root timeline but never updates the clock.
player.getDuration() continues returning 0, so the player's probe
interval never fires the 'ready' event, and the Studio shows "Loading
composition" indefinitely.

Now bindRootTimelineIfAvailable updates clock.setDuration when the
root timeline is late-bound. Guarded with try/catch for the early call
site where clock is not yet initialized (temporal dead zone).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): block element selection while composition is loading

Prevent users from selecting elements in the preview while the
composition is still loading (showing "Loading composition" overlay).
Selection and hover highlighting are suppressed until the player fires
the ready event.

Also reverts motion panel and manual drag editing defaults to false —
these were accidentally set to true during the PR #693 merge.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: release v0.6.0-alpha.5

* chore: release v0.6.0-alpha.6

* fix(runtime): remove per-tick timeline.pause() that causes audio stutter

The seekRuntimeTimeline helper added timeline.pause() before every
totalTime() seek. During transport-driven playback, this runs 60 times
per second, causing GSAP to cascade pause events to media elements on
every frame. The result: audio plays/stops/plays/stops in a stutter
pattern.

The captured root timeline is already paused once in player.play() —
the TransportClock drives it via totalTime(t) which keeps it paused.
The extra per-tick pause() was redundant for the root timeline but
actively harmful for media sync.

Fix: restore the original inline seek for the captured timeline
(totalTime without pause), keep seekRuntimeTimeline with pause() only
for standalone child timelines where explicit pause control is needed.

Also fixes rebase artifact: missing PropertyPanel props in App.tsx.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: release v0.6.0-alpha.7

* fix(studio): restore text field handlers lost in rebase

Restores handleDomAddTextField and handleDomRemoveTextField that were
dropped when resolving App.tsx conflicts during the main→next rebase.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: release v0.6.0-alpha.8

* fix(runtime): comprehensive audio stutter fix

Three changes that together caused audio play/stop/play/stop stutter
during transport-driven playback:

1. seekRuntimeTimeline called timeline.pause() before every totalTime()
   seek, 60x per second. GSAP cascades pause to media elements on every
   frame. Fix: restore original inline seek for the captured timeline
   (totalTime without pause). The timeline is already paused once in
   player.play(). seekRuntimeTimeline with pause() remains only for
   standalone child timelines.

2. player.play() removed the !tl guard, allowing play without a
   captured timeline. But getSafeTimelineDurationSeconds(null) returns
   0, so the clock has no duration → immediately reaches end → stops →
   restarts. Fix: when no timeline provides duration, fall back to the
   root composition element's data-duration attribute.

3. Audio source attachment added networkState guard that could cause
   the clock to flicker between audio-source and monotonic timing
   on transient media states. Fix: keep !rawEl.error guard (prevents
   errored audio from freezing the clock) but drop the networkState
   check.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(runtime): skip drift corrections on playing video elements

Seeking a playing video resets the browser's decoder pipeline, causing
a ~150ms freeze while it re-buffers. During that freeze the monotonic
clock advances, drift grows, and strict sync fires another seek —
creating a perpetual stutter loop (176 seek events / 8s observed on
the apple-presentation composition).

Skip strict and force drift corrections for playing video elements;
only hard sync (>0.5s catastrophic drift) warrants the decoder-reset
cost. Audio elements are unaffected and retain the full correction
tiers.

Also propagate the asset-loading overlay state to the timeline so
controls are disabled during "Preparing preview assets", matching the
existing behavior for the initial composition loading overlay.

* chore: release v0.6.0-alpha.9

* feat(studio): consolidate keyboard shortcuts into single handler

Move all window-level keyboard shortcuts from 4 separate files into
one `handleAppKeyDown` listener in App.tsx:

- Shift+T: toggle timeline (was App.tsx, separate useMountEffect)
- Cmd/Ctrl+Z: undo (was App.tsx, separate useEffect)
- Cmd/Ctrl+Shift+Z: redo (was App.tsx, separate useEffect)
- Cmd/Ctrl+1: sidebar Compositions tab (was LeftSidebar.tsx)
- Cmd/Ctrl+2: sidebar Assets tab (was LeftSidebar.tsx)
- Delete/Backspace: remove selected element (was Timeline.tsx)

LeftSidebar exposes a ref handle for tab switching. Timeline watches
selectedElement becoming null to clean up popover/range UI state.
History hotkey kept as named function for iframe forwarding.

Playback shortcuts (Space, J/K/L, arrows) and caption nudge remain
in their component hooks — tightly coupled to component state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): sidebar tab overflow + hot-reload double-refresh

1. Sidebar tabs: use equal 1fr columns, shorter "Comps" label, truncate
   on overflow, tighter padding. Fixes tabs clipping outside the rounded
   pill at narrow sidebar widths.

2. Hot reload: set domEditSaveTimestampRef before every save-then-refresh
   path (source editor, timeline move/resize/delete, asset drop). The
   file-change watcher already checks this timestamp and suppresses
   echoed events — but source editor saves and timeline operations
   weren't setting it, causing a double refreshKey increment that could
   leave the player in a non-playable state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): delete key removes preview-selected elements

The consolidated keyboard handler only checked selectedElementId
(timeline clips). When a user selected a child element in the
preview via the inspector, selectedElementId was null because
the element didn't correspond to a top-level timeline clip, so
Delete/Backspace did nothing.

Add handleDomEditElementDelete that removes the element referenced
by the current domEditSelection via the remove-element mutation
API. The Delete key handler now falls through from timeline
selection to DOM edit selection.

* fix(studio): remove unused deleteInFlightRef from Timeline

Leftover from moving Delete handling to the consolidated
keyboard handler in App.tsx. Also suppress pre-existing
exhaustive-deps warning on the intentional every-render
selection-change watcher.

* fix(studio): forward all keyboard shortcuts to preview iframe

The consolidated handleAppKeyDown was only added to the parent
window. When focus was inside the preview iframe (after clicking
an element), keydown events didn't reach the parent, so Delete
and other shortcuts didn't fire.

Replace the per-function iframe forwarding (handleTimelineToggleHotkey
only) with the full app-level handler via a ref-stable wrapper.
All app shortcuts (Delete, Undo/Redo, Shift+T, Cmd+1/2) now work
from within the preview iframe.

* fix(core): search inside <template> content when removing elements

linkedom's document.querySelectorAll does not traverse <template>
content. Elements in template-based compositions (like .title-word,
.bullet-text) were invisible to the removal logic, so delete
returned changed: false and the element survived the reload.

Fall back to template.querySelectorAll when the document-level
query returns no matches. Uses template.querySelectorAll directly
(not template.content.querySelectorAll) because removing from
the content DocumentFragment doesn't update the serialized output.

* fix(studio): suppress loading overlay on hot-reload

Only show the composition loading overlay on the first iframe load.
Hot-reloads (source editor save, timeline edits, element delete)
no longer flash the full-screen loading state.

* fix(studio): reorder design panel, fix stroke height, rename Blending

- Move Text section to the top of the panel (before Layout)
- Remove Selection Colors section
- Rename "Blending" to "Transparency"
- Fix stroke Width/Style height mismatch by making SelectField
  use inline label layout matching MetricField

* fix(studio): prevent panel scroll when wheel-adjusting metric inputs

React registers onWheel passively, so preventDefault had no effect
on the parent scroll container. Replace with a native wheel listener
(passive: false) that blocks both default scroll and propagation.

* chore: release v0.6.0-alpha.10

* chore: release v0.6.0-alpha.11

* fix(studio): clean next alpha inspector artifacts

* chore: release v0.6.0-alpha.12

* fix(studio,player,core): eliminate double audio and manifest polling loop (#722)

Three bugs that compound in Studio preview:

1. **Double audio on pause/resume**: syncRuntimeMedia played audio through
   the HTML <audio> element while WebAudioTransport simultaneously played
   the same source through AudioBufferSourceNode. Fixed by passing
   webAudio.isActive() as outputMuted so HTML elements stay muted when
   Web Audio owns playback. Also removed the priorMuted restore in
   stopAll() which raced with the next play cycle.

2. **Manifest polling loop**: applyStudioManualEditsToPreview and
   applyStudioMotionToPreview unconditionally fetched from disk on every
   call, even without forceFromDisk. The runtime posts state messages
   every frame via postMessage, triggering React re-renders that re-invoked
   these functions ~60x/second. Fixed by returning early when no disk read
   is requested, and using refs instead of callbacks in useEffect deps.

3. **Parent proxy double-play**: the player web component created parent-frame
   audio proxies even when the runtime bridge was available, causing two
   audio sources on autoplay-blocked promotion. Fixed by skipping proxy
   creation when _hasRuntimeBridge returns true, and synchronously muting
   iframe media on promotion to close the async race window.

Also fixes pre-existing ResolutionPreset type missing square variants.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): improve font picker and text property controls (#736)

- Line height and letter-spacing: convert from free-text to select with presets
- Font style: remove oblique (browser falls back to italic), keep normal/italic
- Font weight: detect available weights via document.fonts.check(), add labels
- Font source: local fonts matching Google catalog tagged as Google
- Font list: balanced per-source caps prevent any source from being cut off
- Sort order: Google fonts rank before Local so curated fonts appear first

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): inspector visibility, undo/redo blinking, and preview caching

Inspector picks invisible elements when an ancestor has GSAP-set opacity: 0
because CSS opacity is not inherited — getComputedStyle on the child still
returns 1. Walk the ancestor chain in the picker, domEditing, and overlay
visibility checks to catch this.

Also:
- Containers with all-invisible children are no longer selectable
- Selection/hover overlay hides during playback and while loading
- Undo/redo no longer double-refreshes (echo suppression for all file writes)
- Undo/redo reloads iframe in-place instead of recreating the Player,
  preserving shader transition cache
- Preview routes return ETag + Cache-Control headers; composition HTML uses
  project signature for conditional 304, binary assets use mtime+size
- Loading overlay deferred 400ms so cached loads never flash it

* fix(studio): remove timeline inspector buttons, enable manual dragging

Remove the eye icon (inspector) and image icon (thumbnail toggle) from timeline
clips. The timeline layer inspector feature and all supporting code is removed.

Enable manual dragging in the preview by default. Add scrub-to-drag on X/Y/W/H
fields in the design panel. Hide the Radius section when the element has no
visible background. Fix pre-existing ResolutionPreset type for square presets.

* chore: release v0.6.0-alpha.13

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): add rotation field, inline element drag, fix manifest load regression (#743)

- Add rotation (R) field to geometry row (X, Y, W, H, R) in property panel.
  Goes through manifest via handleDomRotationCommit, resettable with Reset Edits.
- Auto-promote display:inline elements to inline-block when dragged so
  translate works on inline spans.
- Fix regression from polling fix: iframe load now passes readFromDiskFirst
  to load manifest from disk, so Reset Edits finds existing entries.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(studio): decompose App.tsx monolith (4297 → 567 lines) (#741)

* refactor(studio): decompose App.tsx from 4297 to 567 lines

Break the monolithic StudioApp component into focused modules:

Hooks (12 new):
- usePanelLayout: resizable/collapsible panel state
- useFileManager: file tree, CRUD, uploads, derived lists
- useManifestPersistence: manual edit + motion manifest save queue
- useTimelineEditing: clip move/resize/delete/drop handlers
- useDomEditSession: DOM selection, style/text commits, preview interaction
- useAppHotkeys: keyboard shortcuts, undo/redo, iframe hotkey sync
- useCaptionDetection: auto-detect caption compositions
- useRenderClipContent: timeline clip thumbnail rendering
- useConsoleErrorCapture: preview iframe console error capture
- useFrameCapture: frame capture download flow
- useLintModal: lint execution and modal state
- useCompositionDimensions: stage-size message listener

Components (6 new):
- AskAgentModal: agent prompt modal
- StudioHeader: toolbar with undo/redo, capture, inspector toggle
- StudioLeftSidebar: file tree + code editor (handles collapsed state)
- StudioPreviewArea: NLELayout + overlays + caption timeline
- StudioRightPanel: Design/Motion/Renders tab panel
- TimelineToolbar: zoom controls + timeline toggle

Utilities (4 new):
- studioHelpers: types, path helpers, DOM utilities
- studioPreviewHelpers: preview pointer/player interaction
- domEditHelpers: selection group algebra
- studioFontHelpers: font injection + @font-face management

Also removes dead timeline layer inspector code (eye icon, thumbnail
toggle, layer panel) that was disabled behind a feature flag.

* feat(studio): add Layer (z-index) field to design panel

Adds a scrub-enabled "Layer" field below the W/H inputs in the Layout
section. Available for all elements regardless of style editing
capability since z-index is fundamental to composition stacking order.

* docs: architecture spec for studio domain contexts, hook split, and file-size lint

* docs: implementation plan for studio contexts, hook split, and file-size lint

* refactor(studio): consolidate duplicate helpers in useDomEditSession

Remove ~370 lines of helper functions that were copied into the hook
instead of imported. All removed functions already exist in the
canonical utility files (studioHelpers, studioFontHelpers,
studioPreviewHelpers, domEditHelpers). Also removes the duplicate
local type definitions for RightPanelTab, AgentModalAnchorPoint, and
PreviewLocalPointer, and drops now-unused imports (googleFontStylesheetUrl,
importedFontFaceCss, resolveVisualDomEditSelectionTarget, DomEditViewport).

Temporarily excludes useDomEditSession.ts from the 500 LOC file-size
check until Tasks 3-5 split it into focused hooks.

* refactor(studio): extract useDomSelection from useDomEditSession

* refactor(studio): extract useAskAgentModal from useDomEditSession

* refactor(studio): extract usePreviewInteraction from useDomEditSession

* refactor(studio): extract useDomEditCommits, useDomEditSession now thin orchestrator

Split the 897-line useDomEditSession into focused hooks:
- useDomEditCommits (439 LOC): manifest commits (path offset, box size,
  rotation, manual edits reset, motion), persist operations, element delete,
  font asset resolution
- useDomEditTextCommits (329 LOC): style/text/text-field commits
- useDomEditSession (339 LOC): thin orchestrator wiring selection, agent
  modal, preview interaction, and commit hooks

All files now under 500 LOC limit. Removed the temporary lefthook
filesize exclusion for useDomEditSession.

* feat(studio): add 4 domain contexts (PanelLayout, FileManager, DomEdit, Studio)

Create context providers that wrap hook return values for prop-drilling
elimination. Each context destructures and reconstructs the value inside
useMemo so exhaustive-deps is satisfied and re-renders are minimized.

Not yet wired into App.tsx — that comes in a follow-up.

* refactor(studio): wire domain contexts, eliminate prop drilling in 4 components

Wire StudioProvider, PanelLayoutProvider, FileManagerProvider, and
DomEditProvider in App.tsx. Migrate StudioHeader, StudioLeftSidebar,
StudioPreviewArea, and StudioRightPanel to consume contexts instead
of props.

Prop counts reduced:
- StudioHeader: 13 -> 6
- StudioLeftSidebar: 19 -> 4
- StudioPreviewArea: 37 -> 11
- StudioRightPanel: 39 -> 3

Net: -118 lines, 108 props removed from call sites.

* chore: upgrade to React 19

Upgrade react and react-dom from 18.3 to 19.2.6 across the workspace.
Add resolutions/overrides in root package.json to prevent peer
dependency pins (e.g. @phosphor-icons/react) from pulling React 18.
Regenerate bun.lock.

This enables the React 19 context syntax (<Context value={...}>)
used by the new domain contexts.

* fix(studio): refresh preview after z-index change so stacking updates visually

* fix(studio): remove duplicate duration override causing oscillation

The timeline message handler set the duration twice: once via
processTimelineMessage and once via a raw durationInFrames override.
When drilled into a sub-composition, these could disagree, causing
the duration to oscillate after element deletion.

* fix(studio): use in-place iframe reload after clip delete, remove confirm dialogs

Two changes to fix duration oscillation after deleting a timeline clip:

1. Replace setRefreshKey (full Player remount) with in-place
   iframe.contentWindow.location.reload() after deleting a clip.
   The full remount triggered a chaotic re-probing cycle with multiple
   duration sources (adapter, manifest, postMessage) fighting each
   other, causing the timeline to oscillate between durations.
   In-place reload preserves the Player web component and its state.

2. Remove window.confirm dialogs from both timeline clip delete and
   DOM element delete. Undo is available so the confirmation adds
   friction without value.

* chore: gitignore docs/superpowers

* feat(studio): add favicon

* perf(studio): skip no-op state updates in timeline sync

syncTimelineElements was called 60+ times per page load, each time
triggering setElements/setDuration/setTimelineReady even when nothing
changed. This caused massive re-render churn and memory usage.

Add early-return guards to skip updates when values haven't changed.
Also fixes the duration oscillation after element delete.

* refactor(studio): split PropertyPanel.tsx (3126 LOC) into 8 focused modules

The monolithic PropertyPanel.tsx exceeded the 500 LOC filesize limit.
Split into cohesive modules by responsibility:

- propertyPanelHelpers.ts (401) — pure utility functions, shared types/constants
- propertyPanelPrimitives.tsx (357) — CommitField, MetricField, DetailField,
  SliderControl, SegmentedControl, SelectField, Section
- propertyPanelColor.tsx (371) — ColorField, ColorSlider
- propertyPanelFill.tsx (421) — ImageFillField, GradientField, asset path helpers
- propertyPanelFont.tsx (455) — FontFamilyField + font catalog helpers
- propertyPanelSections.tsx (453) — TextSection, TextFieldEditor, text controls
- propertyPanelStyleSections.tsx (411) — StyleSections (stroke, effects, clip, fill)
- PropertyPanel.tsx (347) — main component, LayerTree, re-exports for consumers

All re-exports from PropertyPanel.tsx preserved for backwards compatibility.
No behavioral changes — pure structural split.

* fix(studio): use in-place iframe reload for all timeline operations

Replace setRefreshKey with in-place iframe reload for move, resize,
and asset drop — matching delete which was already fixed. Prevents
the Player remount probe cycle that causes duration oscillation.

* perf(studio): replace 5s polling loop with event-driven adapter init

The Player's onIframeLoad used a setInterval polling loop (25 attempts
× 200ms = 5 seconds) to detect when the runtime's __player/__timeline
globals appeared. Each poll that missed triggered wasted work, and
multiple duration sources fighting during the probe cycle caused
oscillation bugs.

Replace with event-driven initialization:
1. Fast path: try initializeAdapter() immediately (works for in-place
   reloads where the adapter is already present)
2. If not ready, listen for the runtime's "state"/"timeline" postMessage
   signals and initialize on the first one
3. Single 5s timeout as safety net (replaces 25 interval ticks)

This eliminates the polling overhead, reduces setDuration/setElements
calls to exactly 1 per load, and makes the Player responsive within
one frame of the runtime being ready instead of up to 200ms later.

* fix(studio): prevent duration oscillation after element delete

Two fixes for the duration display oscillating between sub-composition
and master durations after deleting an element in the preview:

1. Clear store elements before iframe reload in handleDomEditElementDelete.
   Without this, stale pre-delete elements remain in the store and cause
   mergeTimelineElementsPreservingDowngrades to alternate between REPLACE
   and PRESERVE modes as the element count fluctuates.

2. Add 500ms cooldown on enrichMissingCompositions after timeline messages.
   The "state" handler was calling enrichMissingCompositions every ~80ms,
   which added extra elements from GSAP timelines. These fought with the
   authoritative element list from "timeline" messages (~333ms), creating
   a feedback loop where element count oscillated and triggered alternating
   merge strategies with different durations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): single reloadPreview as source of truth for preview refresh

Create reloadPreview() in App.tsx that encapsulates the correct
behavior (in-place iframe reload with setRefreshKey fallback). Pass it
as the sole refresh mechanism to hooks, removing direct setRefreshKey
access from useTimelineEditing and useDomEditCommits.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(studio): decompose App.tsx from 4297 to 567 lines

Break the monolithic StudioApp component into focused modules:

Hooks (12 new):
- usePanelLayout: resizable/collapsible panel state
- useFileManager: file tree, CRUD, uploads, derived lists
- useManifestPersistence: manual edit + motion manifest save queue
- useTimelineEditing: clip move/resize/delete/drop handlers
- useDomEditSession: DOM selection, style/text commits, preview interaction
- useAppHotkeys: keyboard shortcuts, undo/redo, iframe hotkey sync
- useCaptionDetection: auto-detect caption compositions
- useRenderClipContent: timeline clip thumbnail rendering
- useConsoleErrorCapture: preview iframe console error capture
- useFrameCapture: frame capture download flow
- useLintModal: lint execution and modal state
- useCompositionDimensions: stage-size message listener

Components (6 new):
- AskAgentModal: agent prompt modal
- StudioHeader: toolbar with undo/redo, capture, inspector toggle
- StudioLeftSidebar: file tree + code editor (handles collapsed state)
- StudioPreviewArea: NLELayout + overlays + caption timeline
- StudioRightPanel: Design/Motion/Renders tab panel
- TimelineToolbar: zoom controls + timeline toggle

Utilities (4 new):
- studioHelpers: types, path helpers, DOM utilities
- studioPreviewHelpers: preview pointer/player interaction
- domEditHelpers: selection group algebra
- studioFontHelpers: font injection + @font-face management

Also removes dead timeline layer inspector code (eye icon, thumbnail
toggle, layer panel) that was disabled behind a feature flag.

* docs: architecture spec for studio domain contexts, hook split, and file-size lint

* docs: implementation plan for studio contexts, hook split, and file-size lint

* refactor(studio): consolidate duplicate helpers in useDomEditSession

Remove ~370 lines of helper functions that were copied into the hook
instead of imported. All removed functions already exist in the
canonical utility files (studioHelpers, studioFontHelpers,
studioPreviewHelpers, domEditHelpers). Also removes the duplicate
local type definitions for RightPanelTab, AgentModalAnchorPoint, and
PreviewLocalPointer, and drops now-unused imports (googleFontStylesheetUrl,
importedFontFaceCss, resolveVisualDomEditSelectionTarget, DomEditViewport).

Temporarily excludes useDomEditSession.ts from the 500 LOC file-size
check until Tasks 3-5 split it into focused hooks.

* refactor(studio): extract useDomSelection from useDomEditSession

* refactor(studio): extract useAskAgentModal from useDomEditSession

* refactor(studio): extract usePreviewInteraction from useDomEditSession

* refactor(studio): extract useDomEditCommits, useDomEditSession now thin orchestrator

Split the 897-line useDomEditSession into focused hooks:
- useDomEditCommits (439 LOC): manifest commits (path offset, box size,
  rotation, manual edits reset, motion), persist operations, element delete,
  font asset resolution
- useDomEditTextCommits (329 LOC): style/text/text-field commits
- useDomEditSession (339 LOC): thin orchestrator wiring selection, agent
  modal, preview interaction, and commit hooks

All files now under 500 LOC limit. Removed the temporary lefthook
filesize exclusion for useDomEditSession.

* refactor(studio): wire domain contexts, eliminate prop drilling in 4 components

Wire StudioProvider, PanelLayoutProvider, FileManagerProvider, and
DomEditProvider in App.tsx. Migrate StudioHeader, StudioLeftSidebar,
StudioPreviewArea, and StudioRightPanel to consume contexts instead
of props.

Prop counts reduced:
- StudioHeader: 13 -> 6
- StudioLeftSidebar: 19 -> 4
- StudioPreviewArea: 37 -> 11
- StudioRightPanel: 39 -> 3

Net: -118 lines, 108 props removed from call sites.

* fix(studio): refresh preview after z-index change so stacking updates visually

* fix(studio): remove duplicate duration override causing oscillation

The timeline message handler set the duration twice: once via
processTimelineMessage and once via a raw durationInFrames override.
When drilled into a sub-composition, these could disagree, causing
the duration to oscillate after element deletion.

* fix(studio): use in-place iframe reload after clip delete, remove confirm dialogs

Two changes to fix duration oscillation after deleting a timeline clip:

1. Replace setRefreshKey (full Player remount) with in-place
   iframe.contentWindow.location.reload() after deleting a clip.
   The full remount triggered a chaotic re-probing cycle with multiple
   duration sources (adapter, manifest, postMessage) fighting each
   other, causing the timeline to oscillate between durations.
   In-place reload preserves the Player web component and its state.

2. Remove window.confirm dialogs from both timeline clip delete and
   DOM element delete. Undo is available so the confirmation adds
   friction without value.

* chore: gitignore docs/superpowers

* perf(studio): skip no-op state updates in timeline sync

syncTimelineElements was called 60+ times per page load, each time
triggering setElements/setDuration/setTimelineReady even when nothing
changed. This caused massive re-render churn and memory usage.

Add early-return guards to skip updates when values haven't changed.
Also fixes the duration oscillation after element delete.

* refactor(studio): split PropertyPanel.tsx (3126 LOC) into 8 focused modules

The monolithic PropertyPanel.tsx exceeded the 500 LOC filesize limit.
Split into cohesive modules by responsibility:

- propertyPanelHelpers.ts (401) — pure utility functions, shared types/constants
- propertyPanelPrimitives.tsx (357) — CommitField, MetricField, DetailField,
  SliderControl, SegmentedControl, SelectField, Section
- propertyPanelColor.tsx (371) — ColorField, ColorSlider
- propertyPanelFill.tsx (421) — ImageFillField, GradientField, asset path helpers
- propertyPanelFont.tsx (455) — FontFamilyField + font catalog helpers
- propertyPanelSections.tsx (453) — TextSection, TextFieldEditor, text controls
- propertyPanelStyleSections.tsx (411) — StyleSections (stroke, effects, clip, fill)
- PropertyPanel.tsx (347) — main component, LayerTree, re-exports for consumers

All re-exports from PropertyPanel.tsx preserved for backwards compatibility.
No behavioral changes — pure structural split.

* fix(studio): use in-place iframe reload for all timeline operations

Replace setRefreshKey with in-place iframe reload for move, resize,
and asset drop — matching delete which was already fixed. Prevents
the Player remount probe cycle that causes duration oscillation.

* perf(studio): replace 5s polling loop with event-driven adapter init

The Player's onIframeLoad used a setInterval polling loop (25 attempts
× 200ms = 5 seconds) to detect when the runtime's __player/__timeline
globals appeared. Each poll that missed triggered wasted work, and
multiple duration sources fighting during the probe cycle caused
oscillation bugs.

Replace with event-driven initialization:
1. Fast path: try initializeAdapter() immediately (works for in-place
   reloads where the adapter is already present)
2. If not ready, listen for the runtime's "state"/"timeline" postMessage
   signals and initialize on the first one
3. Single 5s timeout as safety net (replaces 25 interval ticks)

This eliminates the polling overhead, reduces setDuration/setElements
calls to exactly 1 per load, and makes the Player responsive within
one frame of the runtime being ready instead of up to 200ms later.

* fix(studio): prevent duration oscillation after element delete

Two fixes for the duration display oscillating between sub-composition
and master durations after deleting an element in the preview:

1. Clear store elements before iframe reload in handleDomEditElementDelete.
   Without this, stale pre-delete elements remain in the store and cause
   mergeTimelineElementsPreservingDowngrades to alternate between REPLACE
   and PRESERVE modes as the element count fluctuates.

2. Add 500ms cooldown on enrichMissingCompositions after timeline messages.
   The "state" handler was calling enrichMissingCompositions every ~80ms,
   which added extra elements from GSAP timelines. These fought with the
   authoritative element list from "timeline" messages (~333ms), creating
   a feedback loop where element count oscillated and triggered alternating
   merge strategies with different durations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(studio): single reloadPreview as source of truth for preview refresh

Create reloadPreview() in App.tsx that encapsulates the correct
behavior (in-place iframe reload with setRefreshKey fallback). Pass it
as the sole refresh mechanism to hooks, removing direct setRefreshKey
access from useTimelineEditing and useDomEditCommits.

* fix: resolve lint errors from rebase (unused imports, duplicate declarations)

* fix: prefix unused probeResult variable

* fix: restore renderOrchestrator.ts from origin/next (rebase conflict artifact)

* fix: resolve rebase conflicts by using main's producer and next's studio/player

* fix: restore rebase-conflicted files from origin/next

* fix: use 'load' instead of 'networkidle0' for Puppeteer waitUntil (type compatibility)

* fix: restore webAudioTransport.ts from main (test compatibility)

---------

Co-authored-by: Vance Ingalls <vance@heygen.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 20:18:52 +02:00

246 lines
174 KiB
JavaScript

"use strict";(()=>{var Po=Object.create;var fn=Object.defineProperty;var Io=Object.getOwnPropertyDescriptor;var Wo=Object.getOwnPropertyNames;var Ho=Object.getPrototypeOf,qo=Object.prototype.hasOwnProperty;var Uo=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var zo=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Wo(e))!qo.call(t,r)&&r!==n&&fn(t,r,{get:()=>e[r],enumerable:!(i=Io(e,r))||i.enumerable});return t};var jo=(t,e,n)=>(n=t!=null?Po(Ho(t)):{},zo(e||!t||!t.__esModule?fn(n,"default",{value:t,enumerable:!0}):n,t));var ye=(t,e,n)=>Uo(t,typeof e!="symbol"?e+"":e,n);var ki=Z((Iu,yn)=>{var K=String,Ti=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K,blackBright:K,redBright:K,greenBright:K,yellowBright:K,blueBright:K,magentaBright:K,cyanBright:K,whiteBright:K,bgBlackBright:K,bgRedBright:K,bgGreenBright:K,bgYellowBright:K,bgBlueBright:K,bgMagentaBright:K,bgCyanBright:K,bgWhiteBright:K}};yn.exports=Ti();yn.exports.createColors=Ti});var Sn=Z(()=>{});var It=Z((qu,_i)=>{"use strict";var vi=ki(),Li=Sn(),ht=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=vi.isColorSupported);let i=a=>a,r=a=>a,o=a=>a;if(e){let{bold:a,gray:f,red:m}=vi.createColors(!0);r=y=>a(m(y)),i=y=>f(y),Li&&(o=y=>Li(y))}let s=n.split(/\r?\n/),c=Math.max(this.line-3,0),u=Math.min(this.line+2,s.length),l=String(u).length;return s.slice(c,u).map((a,f)=>{let m=c+1+f,y=" "+(" "+m).slice(-l)+" | ";if(m===this.line){if(a.length>160){let w=20,x=Math.max(0,this.column-w),R=Math.max(this.column+w,this.endColumn+w),T=a.slice(x,R),M=i(y.replace(/\d/g," "))+a.slice(0,Math.min(this.column-1,w-1)).replace(/[^\t]/g," ");return r(">")+i(y)+o(T)+`
`+M+r("^")}let C=i(y.replace(/\d/g," "))+a.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+i(y)+o(a)+`
`+C+r("^")}return" "+i(y)+o(a)}).join(`
`)}toString(){let e=this.showSourceCode();return e&&(e=`
`+e+`
`),this.name+": "+this.message+e}};_i.exports=ht;ht.default=ht});var An=Z((Uu,Di)=>{"use strict";var ps=/(<)(\/?style\b)/gi,hs=/(<)(!--)/g;function qe(t){return typeof t!="string"||!t.includes("<")?t:t.replace(ps,"\\3c $2").replace(hs,"\\3c $2")}var Ri={after:`
`,beforeClose:`
`,beforeComment:`
`,beforeDecl:`
`,beforeOpen:" ",beforeRule:`
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function xs(t){return t[0].toUpperCase()+t.slice(1)}var xt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(qe(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`
`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(qe(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(qe(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],u=this.raw(c,"before");u&&this.builder(o?u:qe(u)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(qe("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(qe(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return Ri[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let u="raw"+xs(i);this[u]?r=this[u](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=Ri[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`
`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`
`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`
`);return n=o[o.length-1],n=n.replace(/\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:qe(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(qe(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};Di.exports=xt;xt.default=xt});var gt=Z((zu,Bi)=>{"use strict";var gs=An();function bn(t,e){new gs(e).stringify(t)}Bi.exports=bn;bn.default=bn});var Wt=Z((ju,En)=>{"use strict";En.exports.isClean=Symbol("isClean");En.exports.my=Symbol("my")});var At=Z((Gu,Oi)=>{"use strict";var ys=It(),Ss=An(),As=gt(),{isClean:yt,my:bs}=Wt();function Fn(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Fn(s,n)):(o==="object"&&r!==null&&(r=Fn(r)),n[i]=r)}return n}function We(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`
`?(n=1,i+=1):n+=1}return r}var St=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[yt]=!1,this[bs]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=Fn(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new ys(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[yt]=!0}markDirty(){if(this[yt]){this[yt]=!1;let e=this;for(;e=e.parent;)e[yt]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(We(i,this.source.start),We(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=We(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`
`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:We(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:We(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(We(n,this.source.start),We(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:We(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:We(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new Ss().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(u=>typeof u=="object"&&u.toJSON?u.toJSON(null,n):u);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let u=n.get(c.input);u==null&&(u=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:u,start:c.start}}else i[s]=c}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=As){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Oi.exports=St;St.default=St});var Et=Z((Vu,Pi)=>{"use strict";var Es=At(),bt=class extends Es{constructor(e){super(e),this.type="comment"}};Pi.exports=bt;bt.default=bt});var wt=Z(($u,Ii)=>{"use strict";var Fs=At(),Ft=class extends Fs{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Ii.exports=Ft;Ft.default=Ft});var Ue=Z((Ku,$i)=>{"use strict";var Wi=Et(),Hi=wt(),ws=At(),{isClean:qi,my:Ui}=Wt(),wn,zi,ji,Nn;function Gi(t){return t.map(e=>(e.nodes&&(e.nodes=Gi(e.nodes)),delete e.source,e))}function Vi(t){if(t[qi]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)Vi(e)}var _e=class t extends ws{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=Gi(zi(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Hi(e)]}else if(e.selector||e.selectors)e=[new Nn(e)];else if(e.name)e=[new wn(e)];else if(e.text)e=[new Wi(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[Ui]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[qi]&&Vi(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};_e.registerParse=t=>{zi=t};_e.registerRule=t=>{Nn=t};_e.registerAtRule=t=>{wn=t};_e.registerRoot=t=>{ji=t};$i.exports=_e;_e.default=_e;_e.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,wn.prototype):t.type==="rule"?Object.setPrototypeOf(t,Nn.prototype):t.type==="decl"?Object.setPrototypeOf(t,Hi.prototype):t.type==="comment"?Object.setPrototypeOf(t,Wi.prototype):t.type==="root"&&Object.setPrototypeOf(t,ji.prototype),t[Ui]=!0,t.nodes&&t.nodes.forEach(e=>{_e.rebuild(e)})}});var Ht=Z((Ju,Ji)=>{"use strict";var Ki=Ue(),tt=class extends Ki{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Ji.exports=tt;tt.default=tt;Ki.registerAtRule(tt)});var qt=Z((Qu,Zi)=>{"use strict";var Ns=Ue(),Qi,Yi,Ye=class extends Ns{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new Qi(new Yi,this,e).stringify()}};Ye.registerLazyResult=t=>{Qi=t};Ye.registerProcessor=t=>{Yi=t};Zi.exports=Ye;Ye.default=Ye});var er=Z((Yu,Xi)=>{var Cs="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Ms=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},Ts=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Cs[Math.random()*64|0];return e};Xi.exports={nanoid:Ts,customAlphabet:Ms}});var Ut=Z(()=>{});var zt=Z(()=>{});var Cn=Z(()=>{});var tr=Z(()=>{});var Tn=Z((sc,rr)=>{"use strict";var{existsSync:ks,readFileSync:vs}=tr(),{dirname:Mn,join:Ls}=Ut(),{SourceMapConsumer:nr,SourceMapGenerator:ir}=zt();function _s(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Nt=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Mn(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new nr(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,r=/^data:application\/json;charset=utf-?8,/,o=/^data:application\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return _s(e.substr(c[0].length));let u=e.slice(22);throw u=u.slice(0,u.indexOf(",")),new Error("Unsupported source map encoding "+u)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\/\*\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\.map$/i.test(e))&&(this.root=Mn(e),ks(e)))return this.mapFile=e,vs(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof nr)return ir.fromSourceMap(n).toString();if(n instanceof ir)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=Ls(Mn(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};rr.exports=Nt;Nt.default=Nt});var Ct=Z((ac,ur)=>{"use strict";var{nanoid:Rs}=er(),{isAbsolute:Ln,resolve:_n}=Ut(),{SourceMapConsumer:Ds,SourceMapGenerator:Bs}=zt(),{fileURLToPath:or,pathToFileURL:jt}=Cn(),sr=It(),Os=Tn(),kn=Sn(),vn=Symbol("lineToIndexCache"),Ps=!!(Ds&&Bs),ar=!!(_n&&Ln);function lr(t){if(t[vn])return t[vn];let e=t.css.split(`
`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[vn]=n,n}var nt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!ar||/^\w+:\/\//.test(n.from)||Ln(n.from)?this.file=n.from:this.file=_n(n.from)),ar&&Ps){let i=new Os(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Rs(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,u,l;if(n&&typeof n=="object"){let f=n,m=i;if(typeof f.offset=="number"){u=f.offset;let y=this.fromOffset(u);n=y.line,i=y.col}else n=f.line,i=f.column,u=this.fromLineAndColumn(n,i);if(typeof m.offset=="number"){c=m.offset;let y=this.fromOffset(c);s=y.line,o=y.col}else s=m.line,o=m.column,c=this.fromLineAndColumn(m.line,m.column)}else if(i)u=this.fromLineAndColumn(n,i);else{u=n;let f=this.fromOffset(u);n=f.line,i=f.col}let a=this.origin(n,i,s,o);return a?l=new sr(e,a.endLine===void 0?a.line:{column:a.column,line:a.line},a.endLine===void 0?a.column:{column:a.endColumn,line:a.endLine},a.source,a.file,r.plugin):l=new sr(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:c,line:n,offset:u,source:this.css},this.file&&(jt&&(l.input.url=jt(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return lr(this)[e-1]+n-1}fromOffset(e){let n=lr(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:_n(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let u;Ln(s.source)?u=jt(s.source):u=new URL(s.source,this.map.consumer().sourceRoot||jt(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:u.toString()};if(u.protocol==="file:")if(or)l.file=or(u);else throw new Error("file: protocol is not available in this PostCSS build");let a=o.sourceContentFor(s.source);return a&&(l.source=a),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};ur.exports=nt;nt.default=nt;kn&&kn.registerInput&&kn.registerInput(nt)});var it=Z((lc,mr)=>{"use strict";var cr=Ue(),dr,fr,ze=class extends cr{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new dr(new fr,this,e).stringify()}};ze.registerLazyResult=t=>{dr=t};ze.registerProcessor=t=>{fr=t};mr.exports=ze;ze.default=ze;cr.registerRoot(ze)});var Rn=Z((uc,pr)=>{"use strict";var Mt={comma(t){return Mt.split(t,[","],!0)},space(t){let e=[" ",`
`," "];return Mt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,u="",l=!1;for(let a of t)l?l=!1:a==="\\"?l=!0:c?a===u&&(c=!1):a==='"'||a==="'"?(c=!0,u=a):a==="("?s+=1:a===")"?s>0&&(s-=1):s===0&&e.includes(a)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=a;return(n||r!=="")&&i.push(r.trim()),i}};pr.exports=Mt;Mt.default=Mt});var Gt=Z((cc,xr)=>{"use strict";var hr=Ue(),Is=Rn(),rt=class extends hr{get selectors(){return Is.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};xr.exports=rt;rt.default=rt;hr.registerRule(rt)});var yr=Z((dc,gr)=>{"use strict";var Ws=Ht(),Hs=Et(),qs=wt(),Us=Ct(),zs=Tn(),js=it(),Gs=Gt();function Tt(t,e){if(Array.isArray(t))return t.map(r=>Tt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Us.prototype};o.map&&(o.map={...o.map,__proto__:zs.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>Tt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new js(i);if(i.type==="decl")return new qs(i);if(i.type==="rule")return new Gs(i);if(i.type==="comment")return new Hs(i);if(i.type==="atrule")return new Ws(i);throw new Error("Unknown node type: "+t.type)}gr.exports=Tt;Tt.default=Tt});var Bn=Z((fc,wr)=>{"use strict";var{dirname:Vt,relative:Ar,resolve:br,sep:Er}=Ut(),{SourceMapConsumer:Fr,SourceMapGenerator:$t}=zt(),{pathToFileURL:Sr}=Cn(),Vs=Ct(),$s=!!(Fr&&$t),Ks=!!(Vt&&br&&Ar&&Er),Dn=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`
`;this.css.includes(`\r
`)&&(n=`\r
`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||Vt(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Fr(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`
`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Ks&&$s&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=$t.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new $t({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new $t({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,u,l)=>{if(this.css+=c,u&&l!=="end"&&(r.generated.line=e,r.generated.column=n-1,u.source&&u.source.start?(r.source=this.sourcePath(u),r.original.line=u.source.start.line,r.original.column=u.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\n/g),s?(e+=s.length,o=c.lastIndexOf(`
`),n=c.length-o):n+=c.length,u&&l!=="start"){let a=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==a.last||a.raws.semicolon)&&(u.source&&u.source.end?(r.source=this.sourcePath(u),r.original.line=u.source.end.line,r.original.column=u.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?Vt(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Vt(br(i,this.mapOpts.annotation)));let r=Ar(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new Vs(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(Sr){let i=Sr(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Er==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};wr.exports=Dn});var Mr=Z((mc,Cr)=>{"use strict";var Kt=/[\t\n\f\r "#'()/;[\\\]{}]/g,Jt=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Js=/.[\r\n"'(/\\]/,Nr=/[\da-f]/i;Cr.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,u,l,a,f,m,y,C,w=i.length,x=0,R=[],T=[],M=-1;function j(){return x}function L(E){throw e.error("Unclosed "+E,x)}function F(){return T.length===0&&x>=w}function g(E){if(T.length)return T.pop();if(x>=w)return;let N=E?E.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{u=x;do u+=1,o=i.charCodeAt(u);while(o===32||o===10||o===9||o===13||o===12);a=["space",i.slice(x,u)],x=u-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);a=[k,k,x];break}case 40:{if(C=R.length?R.pop()[1]:"",y=i.charCodeAt(x+1),C==="url"&&y!==39&&y!==34&&y!==32&&y!==10&&y!==9&&y!==12&&y!==13){u=x;do{if(f=!1,u=i.indexOf(")",u+1),u===-1)if(r||N){u=x;break}else L("bracket");for(m=u;i.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);a=["brackets",i.slice(x,u+1),x,u],x=u}else x<=M?a=["(","(",x]:(u=i.indexOf(")",x+1),s=i.slice(x,u+1),u===-1||Js.test(s)?(M=u===-1?w:u,a=["(","(",x]):(a=["brackets",s,x,u],x=u));break}case 39:case 34:{l=o===39?"'":'"',u=x;do{if(f=!1,u=i.indexOf(l,u+1),u===-1)if(r||N){u=x+1;break}else L("string");for(m=u;i.charCodeAt(m-1)===92;)m-=1,f=!f}while(f);a=["string",i.slice(x,u+1),x,u],x=u;break}case 64:{Kt.lastIndex=x+1,Kt.test(i),Kt.lastIndex===0?u=i.length-1:u=Kt.lastIndex-2,a=["at-word",i.slice(x,u+1),x,u],x=u;break}case 92:{for(u=x,c=!0;i.charCodeAt(u+1)===92;)u+=1,c=!c;if(o=i.charCodeAt(u+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(u+=1,Nr.test(i.charAt(u)))){for(;Nr.test(i.charAt(u+1));)u+=1;i.charCodeAt(u+1)===32&&(u+=1)}a=["word",i.slice(x,u+1),x,u],x=u;break}default:{o===47&&i.charCodeAt(x+1)===42?(u=i.indexOf("*/",x+2)+1,u===0&&(r||N?u=i.length:L("comment")),a=["comment",i.slice(x,u+1),x,u],x=u):(Jt.lastIndex=x+1,Jt.test(i),Jt.lastIndex===0?u=i.length-1:u=Jt.lastIndex-2,a=["word",i.slice(x,u+1),x,u],R.push(a),x=u);break}}return x++,a}function A(E){T.push(E)}return{back:A,endOfFile:F,nextToken:g,position:j}}});var Lr=Z((pc,vr)=>{"use strict";var Qs=Ht(),Ys=Et(),Zs=wt(),Xs=it(),Tr=Gt(),ea=Mr(),kr={empty:!0,space:!0};function ta(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var On=class{constructor(e){this.input=e,this.root=new Xs,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Qs;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,u=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(u.length>0){for(o=u.length-1,r=u[o];r&&r[0]==="space";)r=u[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else u.push(e);else u.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),s&&(e=u[u.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Ys;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\s*)([^]*\S)(\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=ea(this.input)}decl(e,n){let i=new Zs;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||ta(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let a=this.stringFrom(e,l);a=this.spacesFromEnd(e)+a,a!==" !important"&&(i.raws.important=a);break}else if(o[1].toLowerCase()==="important"){let a=e.slice(0),f="";for(let m=l;m>0;m--){let y=a[m][0];if(f.trim().startsWith("!")&&y!=="space")break;f=a.pop()[1]+f}f.trim().startsWith("!")&&(i.important=!0,i.raws.important=f,e=a)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Tr;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),u=[],l=e;for(;l;){if(i=l[0],u.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(u,c);return}else break;else if(i==="{"){this.rule(u);return}else if(i==="}"){this.tokenizer.back(u.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!c)for(;u.length&&(l=u[u.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,c)}else this.unknownWord(u)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,u="",l=!0,a,f;for(let m=0;m<c;m+=1)o=i[m],s=o[0],s==="space"&&m===c-1&&!r?l=!1:s==="comment"?(f=i[m-1]?i[m-1][0]:"empty",a=i[m+1]?i[m+1][0]:"empty",!kr[f]&&!kr[a]?u.slice(-1)===","?l=!1:u+=o[1]:l=!1):u+=o[1];if(!l){let m=i.reduce((y,C)=>y+C[1],"");e.raws[n]={raw:m,value:u}}e[n]=u}rule(e){e.pop();let n=new Tr;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};vr.exports=On});var Yt=Z((hc,_r)=>{"use strict";var na=Ue(),ia=Ct(),ra=Lr();function Qt(t,e){let n=new ia(t,e),i=new ra(n);try{i.parse()}catch(r){throw r}return i.root}_r.exports=Qt;Qt.default=Qt;na.registerParse(Qt)});var Pn=Z((xc,Rr)=>{"use strict";var kt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Rr.exports=kt;kt.default=kt});var Zt=Z((gc,Dr)=>{"use strict";var oa=Pn(),vt=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new oa(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};Dr.exports=vt;vt.default=vt});var In=Z((yc,Or)=>{"use strict";var Br={};Or.exports=function(e){Br[e]||(Br[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var qn=Z((Ac,Hr)=>{"use strict";var sa=Ue(),aa=qt(),la=Bn(),ua=Yt(),Pr=Zt(),ca=it(),da=gt(),{isClean:Oe,my:fa}=Wt(),Sc=In(),ma={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},pa={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},ha={Once:!0,postcssPlugin:!0,prepare:!0},ot=0;function Lt(t){return typeof t=="object"&&typeof t.then=="function"}function Wr(t){let e=!1,n=ma[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,ot,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,ot,n+"Exit"]:[n,n+"Exit"]}function Ir(t){let e;return t.type==="document"?e=["Document",ot,"DocumentExit"]:t.type==="root"?e=["Root",ot,"RootExit"]:e=Wr(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Wn(t){return t[Oe]=!1,t.nodes&&t.nodes.forEach(e=>Wn(e)),t}var Hn={},je=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Wn(n);else if(n instanceof t||n instanceof Pr)r=Wn(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=ua;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[fa]&&sa.rebuild(r)}this.result=new Pr(e,r,i),this.helpers={...Hn,postcss:Hn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!pa[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ha[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Lt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Oe];){e[Oe]=!0;let n=[Ir(e)];for(;n.length>0;){let i=this.visitTick(n);if(Lt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Lt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=da;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new la(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Lt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Oe];)e[Oe]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Lt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(u){throw this.handleError(u,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Oe]){c[Oe]=!0,e.push(Ir(c));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===ot){i.nodes&&i.nodes.length&&(i[Oe]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Oe]=!0;let n=Wr(e);for(let i of n)if(i===ot)e.nodes&&e.each(r=>{r[Oe]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};je.registerPostcss=t=>{Hn=t};Hr.exports=je;je.default=je;ca.registerLazyResult(je);aa.registerLazyResult(je)});var Ur=Z((Ec,qr)=>{"use strict";var xa=Bn(),ga=Yt(),ya=Zt(),Sa=gt(),bc=In(),_t=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=ga;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Sa;this.result=new ya(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new xa(r,void 0,this._opts,n);if(s.isMap()){let[c,u]=s.generate();c&&(this.result.css=c),u&&(this.result.map=u)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};qr.exports=_t;_t.default=_t});var jr=Z((Fc,zr)=>{"use strict";var Aa=qt(),ba=qn(),Ea=Ur(),Fa=it(),Ze=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Ea(this,e,n):new ba(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};zr.exports=Ze;Ze.default=Ze;Fa.registerProcessor(Ze);Aa.registerProcessor(Ze)});var Zr=Z((wc,Yr)=>{"use strict";var Gr=Ht(),Vr=Et(),wa=Ue(),Na=It(),$r=wt(),Kr=qt(),Ca=yr(),Ma=Ct(),Ta=qn(),ka=Rn(),va=At(),La=Yt(),Un=jr(),_a=Zt(),Jr=it(),Qr=Gt(),Ra=gt(),Da=Pn();function ie(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Un(t)}ie.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357:
https://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Un().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,u){return ie([r(u)]).process(s,c)},r};ie.stringify=Ra;ie.parse=La;ie.fromJSON=Ca;ie.list=ka;ie.comment=t=>new Vr(t);ie.atRule=t=>new Gr(t);ie.decl=t=>new $r(t);ie.rule=t=>new Qr(t);ie.root=t=>new Jr(t);ie.document=t=>new Kr(t);ie.CssSyntaxError=Na;ie.Declaration=$r;ie.Container=wa;ie.Processor=Un;ie.Document=Kr;ie.Comment=Vr;ie.Warning=Da;ie.AtRule=Gr;ie.Result=_a;ie.Input=Ma;ie.Rule=Qr;ie.Root=Jr;ie.Node=va;Ta.registerPostcss(ie);Yr.exports=ie;ie.default=ie});function O(t,e){if(typeof window>"u")return;let n=window,i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function be(t){try{window.parent.postMessage(t,"*")}catch(e){O("bridge.postMessage",e)}}function ai(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){t.onPlay();return}if(r==="pause"){t.onPause();return}if(r==="seek"){t.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="set-muted"){t.onSetMuted(!!i.muted);return}if(r==="set-volume"){t.onSetVolume(Math.max(0,Math.min(1,Number(i.volume??1))));return}if(r==="set-media-output-muted"){t.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){t.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){t.onEnablePickMode();return}if(r==="disable-pick-mode"){t.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&Go(o,s)}};return window.addEventListener("message",e),e}function Go(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`
.__hf-flash {
outline: 2px solid rgba(59, 130, 246, 0.6) !important;
outline-offset: 2px !important;
animation: __hf-flash-pulse ${e}ms ease-out forwards !important;
}
@keyframes __hf-flash-pulse {
0% { outline-color: rgba(59, 130, 246, 0.8); }
100% { outline-color: transparent; }
}
`,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){O("bridge.flashElements.querySelector",i)}}var mn=null;function li(t){mn=t}function dt(t,e){if(mn)try{mn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){O("runtime.analytics.site1",n)}}function ui(t){let e=[],n=c=>{if(typeof c.getAnimations!="function")return[];try{return c.getAnimations()}catch{return[]}},i=(c,u)=>{for(let l of c){try{l.currentTime=u}catch(a){O("runtime.adapters.css.site1",a)}try{l.pause()}catch(a){O("runtime.adapters.css.site2",a)}}},r=c=>{for(let u of c)try{u.play()}catch(l){O("runtime.adapters.css.site3",l)}},o=c=>{for(let u of c)try{u.pause()}catch(l){O("runtime.adapters.css.site4",l)}},s=c=>{c.baseDelay?c.el.style.animationDelay=c.baseDelay:c.el.style.removeProperty("animation-delay"),c.basePlayState?c.el.style.animationPlayState=c.basePlayState:c.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let c=document.querySelectorAll("*");for(let u of c){if(!(u instanceof HTMLElement))continue;let l=window.getComputedStyle(u);!l.animationName||l.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||""})}},seek:c=>{let u=Number(c.time)||0;for(let l of e){if(!l.el.isConnected)continue;let a=t?.resolveStartSeconds?t.resolveStartSeconds(l.el):Number.parseFloat(l.el.getAttribute("data-start")??"0")||0,f=Math.max(0,u-a)*1e3,m=n(l.el);if(m.length>0){i(m,f);continue}l.el.style.animationPlayState="paused",l.el.style.animationDelay=`-${(f/1e3).toFixed(3)}s`}},pause:()=>{for(let c of e){if(!c.el.isConnected)continue;let u=n(c.el);u.length>0&&o(u),s(c)}},play:()=>{for(let c of e)c.el.isConnected&&(s(c),r(n(c.el)))},revert:()=>{e=[]}}}function ci(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?n.totalTime(i,!1):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function di(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){O("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){O("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){O("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){O("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function pi(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){O("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(fi(i))i.goToAndStop(e*1e3,!1);else if(mi(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){O("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(fi(e)||mi(e))&&e.pause()}catch(n){O("runtime.adapters.lottie.site3",n)}},revert:()=>{}}}function fi(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function mi(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}function hi(){let t=null,e=0;return{name:"three",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfThreeTime=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(i){O("runtime.adapters.three.site1",i)}},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function xi(){return{name:"waapi",discover:()=>{},seek:t=>{if(!document.getAnimations)return;let e=Math.max(0,(Number(t.time)||0)*1e3);for(let n of document.getAnimations()){try{n.currentTime=e}catch(i){O("runtime.adapters.waapi.site1",i)}try{n.pause()}catch(i){O("runtime.adapters.waapi.site2",i)}}},pause:()=>{if(document.getAnimations)for(let t of document.getAnimations())try{t.pause()}catch(e){O("runtime.adapters.waapi.site3",e)}}}}function Ot(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let u=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=s.defaultPlaybackRate,a=Number.isFinite(l)&&l>0?Math.max(.1,Math.min(5,l)):1,f=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,y=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(y)||y<=0)&&m!=null&&(y=Math.max(0,(m-u)/a));let C=Number.isFinite(y)&&y>0?c+y:Number.POSITIVE_INFINITY,w=Number.parseFloat(s.dataset.volume??""),x={el:s,start:c,mediaStart:u,duration:Number.isFinite(y)&&y>0?y:Number.POSITIVE_INFINITY,end:C,volume:Number.isFinite(w)?w:null,playbackRate:a,loop:f,sourceDuration:m};i.push(x),s.tagName==="VIDEO"&&r.push(x),Number.isFinite(C)&&(o=Math.max(o,C))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var pn=new WeakMap,ft=new WeakMap,hn=new WeakSet,Xe=new WeakSet;function Vo(t){if(Xe.has(t))return;Xe.add(t);let e=()=>Xe.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}function gi(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<n.end&&r>=0){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let L=n.sourceDuration-n.mediaStart;L>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%L)}let s=t.userVolume??1;i.volume=(n.volume??1)*s,e&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(L){O("runtime.media.site1",L)}let c=.04,u=2,l=i.currentTime||0,a=Math.abs(l-r),f=r-l,m=pn.get(i);pn.set(i,f);let y=m===void 0,C=!y&&Math.abs(f-m)>.5,w=a>3,x=a>.5&&(y||C||w),R=i.tagName==="VIDEO"&&!i.paused,T=m!==void 0&&Math.abs(f-m)<.004,M=!1;if(!R&&!x&&!y&&T&&a>c){let L=(ft.get(i)??0)+1;ft.set(i,L),L>=u&&(M=!0,ft.set(i,0))}else a<=c&&ft.set(i,0);let j=!R&&t.forceSync&&a>.02;if(x||M||j){try{i.currentTime=r}catch(L){O("runtime.media.site2",L)}if(Math.abs(i.currentTime-r)>.5&&!hn.has(i)){hn.add(i),i.load();try{i.currentTime=r}catch(L){O("runtime.media.site3",L)}}Xe.delete(i)}t.playing&&i.paused&&!Xe.has(i)?(Vo(i),i.play().catch(L=>{Xe.delete(i),(L&&typeof L=="object"&&"name"in L?String(L.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}pn.delete(i),ft.delete(i),hn.delete(i),i.paused||i.pause()}}var $o=6,Ko=10,yi=2,Jo=5;function Si(t){let e=[],n=new Set,i=[],r=new Map,o=!1,s=!1;function c(){e=Ot(t).mediaClips;let R=typeof window.__HF_LAZY_PRELOAD_THRESHOLD=="number"?window.__HF_LAZY_PRELOAD_THRESHOLD:$o;o=e.length>=R,o&&!s&&(s=!0,t?.onActivation?.(e.length))}function u(x){if(!n.has(x.el))return;r.has(x.el)||r.set(x.el,x.el.src),x.el.removeAttribute("src"),x.el.load(),x.el.preload="metadata",n.delete(x.el);let R=i.indexOf(x.el);R!==-1&&i.splice(R,1)}function l(x){if(n.has(x.el))return;let R=r.get(x.el);R!==void 0&&!x.el.src&&(x.el.src=R,r.delete(x.el)),n.add(x.el),i.push(x.el),x.el.preload!=="auto"&&(x.el.preload="auto"),x.el.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&x.el.load()}function a(x){let R=new Set;for(let T of x)R.add(T.el);for(let T of e)n.has(T.el)&&!R.has(T.el)&&u(T);for(;i.length>Jo;){let T=i[0];if(R.has(T))break;let M=e.find(j=>j.el===T);M?u(M):(n.delete(T),i.shift())}}function f(x){let R=x+Ko,T=new Set;for(let M of e){let j=x>=M.start&&x<M.end,L=M.start>=x&&M.start<=R;(j||L)&&T.add(M)}if(T.size<yi){let M=e.filter(j=>j.start>=x&&!T.has(j)).sort((j,L)=>j.start-L.start);for(let j of M)if(T.add(j),T.size>=yi)break}return T}function m(x){let R=f(x);a(R);for(let T of e)R.has(T)&&l(T)}function y(x){o&&m(x)}function C(x){o&&m(x)}function w(){return o}return{refresh:c,sync:y,preloadAroundTime:C,isLazy:w}}var Qo=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Yo=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function Ai(t){let e=!1,n=null,i=null,r=null,o=null;function s(g,A){try{window.dispatchEvent(new CustomEvent(g,{detail:A}))}catch(E){O("runtime.picker.site1",E)}}function c(g){r=g,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function u(g){o=g,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(g){let A=g.ownerDocument.defaultView;if(!A)return!1;let E=g;for(;E&&E!==document.body&&E!==document.documentElement;){let N=A.getComputedStyle(E);if(N.display==="none"||N.visibility==="hidden"||N.pointerEvents==="none")return!0;let k=Number.parseFloat(N.opacity);if(Number.isFinite(k)&&k<=.01)return!0;E=E.parentElement}return!1}function a(g){if(!g||g===document.body||g===document.documentElement)return!1;let A=g.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||g.classList.contains("__hf-pick-highlight")||g.closest(Qo)||l(g))}function f(g){return!!g?.closest(Yo)}function m(g){let A=g;if(A.id)return`#${A.id}`;let E=g.getAttribute("data-composition-id");if(E)return`[data-composition-id="${E}"]`;let N=g.getAttribute("data-composition-src");if(N)return`[data-composition-src="${N}"]`;let k=g.getAttribute("data-track-index");if(k)return`[data-track-index="${k}"]`;let B=g.tagName.toLowerCase(),I=g.parentElement;if(!I)return B;let Q=I.querySelectorAll(`:scope > ${B}`);if(Q.length===1)return B;for(let _=0;_<Q.length;_+=1)if(Q[_]===g)return`${B}:nth-of-type(${_+1})`;return B}function y(g){let A=g.tagName.toLowerCase(),E=(g.textContent??"").trim().replace(/\s+/g," "),N=(k,B)=>k.length>B?`${k.slice(0,B-1)}\u2026`:k;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?E.length>0?N(E,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":g.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function C(g,A,E){let N=typeof E=="number"&&E>0?E:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(g,A);else if(document.elementFromPoint){let Q=document.elementFromPoint(g,A);k=Q?[Q]:[]}if(f(k[0]??null))return[];let B={},I=[];for(let Q=0;Q<k.length;Q+=1){let _=k[Q];if(!a(_))continue;let ue=`${_.tagName}::${_.id||""}::${Q}`;if(!B[ue]&&(B[ue]=!0,I.push(_),I.length>=N))break}return I}function w(g){let A=g.getBoundingClientRect(),E={};for(let k=0;k<g.attributes.length;k+=1){let B=g.attributes[k];B.name.startsWith("data-")&&(E[B.name]=B.value)}return{id:g.id||null,tagName:g.tagName.toLowerCase(),selector:m(g),label:y(g),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:g.textContent?g.textContent.trim().slice(0,200):null,src:g.getAttribute("src")||g.getAttribute("data-composition-src")||null,dataAttributes:E}}function x(g,A,E){return C(g,A,E).map(w)}function R(g){if(!e)return;let E=C(g.clientX,g.clientY,1)[0]??(g.target instanceof Element?g.target:null);if(!a(E)||n===E)return;n&&n.classList.remove("__hf-pick-highlight"),n=E,E.classList.add("__hf-pick-highlight");let N=w(E);c(N),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function T(g){if(!e)return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation();let A=x(g.clientX,g.clientY,8);A.length!==0&&(c(A[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:g.clientX,y:g.clientY}}))}function M(g){g.key==="Escape"&&(L(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function j(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`
`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",R,!0),document.addEventListener("click",T,!0),document.addEventListener("keydown",M,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function L(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",R,!0),document.removeEventListener("click",T,!0),document.removeEventListener("keydown",M,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function F(){window.__HF_PICKER_API={enable:j,disable:L,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(g,A,E)=>Number.isFinite(g)&&Number.isFinite(A)?x(g,A,E):[],pickAtPoint:(g,A,E)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return null;let N=x(g,A,8);if(!N.length)return null;let k=Math.max(0,Math.min(N.length-1,Number(E??0))),B=N[k]??null;return B?(u(B),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:B}),L(),B):null},pickManyAtPoint:(g,A,E)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return[];let N=x(g,A,8);if(!N.length)return[];let k=[],B=Array.isArray(E)?E:[0];for(let I of B){let Q=Math.max(0,Math.min(N.length-1,Math.floor(Number(I)))),_=N[Q];if(!_)continue;k.some(he=>he.selector===_.selector&&he.tagName===_.tagName)||k.push(_)}return k.length?(u(k[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),L(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:j,disablePickMode:L,installPickerApi:F}}function et(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function Pt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){O("runtime.player.site1",r)}}}function bi(t,e,n){let i=et(e,n);return t.pause(),typeof t.totalTime=="function"?t.totalTime(i,!1):t.seek(i,!1),i}function Zo(t,e,n,i){let r=[];Pt(t,e,o=>{o.play(),r.push(o)});try{return bi(e,n,i)}finally{for(let o of r)try{o.pause()}catch(s){O("runtime.player.site2",s)}}}function Xo(t,e){Pt(t,e,n=>{n.play()})}function Ei(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??e.duration()??0)||0);n>0&&Math.max(0,Number(e.time())||0)>=n&&(e.pause(),e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),e.play(),Pt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),i.play()}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;e.pause(),Pt(t.getTimelineRegistry?.(),e,i=>{i.pause()});let n=Math.max(0,Number(e.time())||0);t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:e=>{let n=t.getTimeline();if(!n)return;let i=Math.max(0,Number(e)||0),r=Zo(t.getTimelineRegistry?.(),n,i,t.getCanonicalFps());t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Xo(t.getTimelineRegistry?.(),n),bi(n,e,i)):et(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>Number(t.getTimeline()?.time()??0),getDuration:()=>Number(t.getTimeline()?.duration()??0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Fi(){return{capturedTimeline:null,isPlaying:!1,rafId:null,currentTime:0,deterministicAdapters:[],parityModeEnabled:!0,canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,clampDurationLoggedRaw:null,beforeUnloadHandler:null,domReadyHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,maxTimelineDurationSeconds:1800,nativeVisualWatchdogTick:0,transportClock:null,transportRafId:null}}var es="data-hf-authored-duration",ts="data-hf-authored-end";function Je(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ns(t){return Je(t.getAttribute("data-duration"))}function is(t){return Je(t.getAttribute("data-end"))}function rs(t){return Je(t.getAttribute(es))}function os(t){return Je(t.getAttribute(ts))}function ss(t){let e=(t??"").trim();if(!e)return null;let n=Je(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\s*([+-])\s*([0-9]*\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),u=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-u:u;return{kind:"reference",refId:r,offset:l}}function Qe(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=a=>{let f=document.getElementById(a);return f||(document.querySelector(`[data-composition-id="${CSS.escape(a)}"]`)??null)},c=a=>{let f=r.get(a);if(f!==void 0)return f;let m=null,y=ns(a)??(n?rs(a):null);if(y!=null&&y>0&&(m=y),m==null||m<=0){let C=is(a)??(n?os(a):null);if(C!=null){let w=l(a,0),x=C-w;Number.isFinite(x)&&x>0&&(m=x)}}if((m==null||m<=0)&&a instanceof HTMLMediaElement){let C=Je(a.getAttribute("data-playback-start"))??Je(a.getAttribute("data-media-start"))??0;Number.isFinite(a.duration)&&a.duration>C&&(m=a.duration-C)}if(m==null||m<=0){let C=a.getAttribute("data-composition-id");if(C){let w=e[C]??null;if(w&&typeof w.duration=="function")try{let x=Number(w.duration());Number.isFinite(x)&&x>0&&(m=x)}catch(x){O("runtime.startResolver.site1",x)}}}return m!=null&&Number.isFinite(m)&&m>0?(r.set(a,m),m):(r.set(a,null),null)},u=(a,f)=>{if(a.hasAttribute("data-composition-id")){let y=a.parentElement?.closest("[data-composition-id]");return y?l(y,f):0}let m=a.closest("[data-composition-id]");return m?l(m,f):0},l=(a,f)=>{let m=i.get(a);if(m!==void 0)return m??f;if(o.has(a))return f;o.add(a);try{let y=ss(a.getAttribute("data-start"));if(!y){if(a.hasAttribute("data-composition-id")){let T=a.parentElement;if(T&&(T.hasAttribute("data-composition-src")||T.hasAttribute("data-composition-id"))){let M=l(T,f);return i.set(a,M),M}}return i.set(a,f),f}if(y.kind==="absolute"){let T=Math.max(0,y.value),M=Math.max(0,u(a,f)+T);return i.set(a,M),M}let C=s(y.refId);if(!C)return i.set(a,f),f;let w=l(C,0),x=c(C);if(x==null||x<=0){let T=Math.max(0,w+y.offset);return i.set(a,T),T}let R=Math.max(0,w+x+y.offset);return i.set(a,R),R}finally{o.delete(a)}};return{resolveStartForElement:(a,f=0)=>l(a,Math.max(0,f)),resolveDurationForElement:a=>c(a)}}var as="data-hf-authored-duration",ls="data-hf-authored-end";function Ee(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function xn(t){return Ee(t.getAttribute("data-duration"))??Ee(t.getAttribute(as))}function wi(t){return Ee(t.getAttribute("data-end"))??Ee(t.getAttribute(ls))}function gn(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Ni={composition:0,video:1,image:2,element:3,audio:4};function us(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let u=[...c].sort((l,a)=>(Ni[l]??99)-(Ni[a]??99));for(let l of u)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,u=r.get(c);u!=null&&(s.track=u)}}function pt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Ci(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return pt(e);let n=t.getAttribute("data-composition-src");if(n)return pt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?pt(i.getAttribute("src")):null}function cs(t){let e=t.className;return typeof e!="string"?null:e.split(/\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function ds(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\/]/).filter(Boolean).at(-1)??null}}function fs(t){let e=t.textContent?.replace(/\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function mt(t){let e=t.replace(/\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim();return e?e.replace(/\b\w/g,n=>n.toUpperCase()):t}function ms(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return mt(r);let o=t.id;if(o)return mt(o);let s=cs(t);if(s)return mt(s);let c=ds(Ci(t));if(c)return mt(c);let u=fs(t);return u||`${mt(e)} ${n+1}`}function Mi(t){let n=window.__timelines??{},i=Qe({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=H=>{if(!H)return null;let v=n[H]??null;if(!v||typeof v.duration!="function")return null;try{let P=Number(v.duration());return Number.isFinite(P)&&P>0?P:null}catch{return null}},o=H=>{let v=Ee(H.getAttribute("data-duration"));if(v!=null&&v>0)return v;let P=Ee(H.getAttribute("data-playback-start"))??Ee(H.getAttribute("data-media-start"))??0;return Number.isFinite(H.duration)&&H.duration>P?Math.max(0,H.duration-P):null},s=()=>{let H=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(H.length===0)return null;let v=0;for(let P of H){let ne=i.resolveStartForElement(P,0);if(!Number.isFinite(ne))continue;let ee=o(P);ee==null||ee<=0||(v=Math.max(v,Math.max(0,ne)+ee))}return v>0?v:null},c=H=>{let v=H.trim().toLowerCase();return!(!v||v==="main"||v.includes("caption")||v.includes("ambient"))},u=(H,v)=>{let P=[],ne=null,ee=null,z=null,U=H.parentElement;for(;U;){let G=U.getAttribute("data-composition-id");G&&(P.push(G),!z&&U!==v&&(z=G),ne==null&&(ne=i.resolveStartForElement(U,0)),ee==null&&(ee=Ee(U.getAttribute("data-duration"))??r(G)??null)),U=U.parentElement}return{parentCompositionId:z,compositionAncestors:P.reverse(),inheritedStart:ne,inheritedDuration:ee}},l=document.querySelector("[data-composition-id]"),a=Array.from(document.querySelectorAll("[data-composition-id]")),f=l?.getAttribute("data-composition-id")??null,m=l?i.resolveStartForElement(l,0):0,y=s(),C=y!=null?Math.max(0,y-Math.max(0,m)):null,w=r(f),x=xn(l??document.body),R=gn(...a.filter(H=>H!==l).map(H=>{let v=i.resolveStartForElement(H,0),P=i.resolveDurationForElement(H)??r(H.getAttribute("data-composition-id"))??null;return!Number.isFinite(v)||P==null||P<=0?null:Math.max(0,v)+P})),T=R!=null?Math.max(0,R-Math.max(0,m)):null,M=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,j=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,L=typeof C=="number"&&Number.isFinite(C)&&C>0?C:null,F=typeof T=="number"&&Number.isFinite(T)&&T>0?T:null,g=gn(L,F),A=M!=null&&g!=null&&M>g+1,E=j??(A?g:gn(M,L,F)),N=E!=null?Math.min(E,t.maxTimelineDurationSeconds):null,B=(N!=null?m+N:null)??(typeof y=="number"&&Number.isFinite(y)&&y>0?y:null),I=(H,v)=>!Number.isFinite(v)||v<=0?0:B==null||!Number.isFinite(B)?v:!Number.isFinite(H)||H>=B?0:Math.max(0,Math.min(v,B-H)),Q=[],_=[],ue=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),he=0;for(let H=0;H<ue.length;H+=1){let v=ue[H];if(v===l||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(v.tagName))continue;let P=u(v,l),ne=i.resolveStartForElement(v,P.inheritedStart??0),ee=v.getAttribute("data-composition-id"),z=xn(v);if((z==null||z<=0)&&ee&&ee!==f&&(z=r(ee)),(z==null||z<=0)&&v instanceof HTMLMediaElement){let Se=Ee(v.getAttribute("data-playback-start"))??Ee(v.getAttribute("data-media-start"))??0;Number.isFinite(v.duration)&&v.duration>0&&(z=Math.max(0,v.duration-Se))}if(z==null||z<=0){let Se=P.inheritedDuration;if(Se!=null&&Se>0){let ve=(P.inheritedStart??0)+Se;z=Math.max(0,ve-ne)}}if(z==null||z<=0||(z=I(ne,z),z<=0))continue;let U=ne+z;he=Math.max(he,U);let G=v.tagName.toLowerCase(),De=ee&&ee!==f?"composition":G==="video"?"video":G==="audio"?"audio":G==="img"?"image":"element";Q.push({id:v.id||ee||null,label:ms(v,De,Q.length),start:ne,duration:z,track:Number.parseInt(v.getAttribute("data-track-index")??v.getAttribute("data-track")??String(H),10)||0,kind:De,tagName:G,compositionId:v.getAttribute("data-composition-id"),compositionAncestors:P.compositionAncestors,parentCompositionId:P.parentCompositionId,nodePath:null,compositionSrc:pt(v.getAttribute("data-composition-src")),assetUrl:Ci(v),timelineRole:v.getAttribute("data-timeline-role"),timelineLabel:v.getAttribute("data-timeline-label"),timelineGroup:v.getAttribute("data-timeline-group"),timelinePriority:Ee(v.getAttribute("data-timeline-priority"))})}let $=new Set(Q.map(H=>H.id)),V=l?.getAttribute("data-composition-id")??null,W=V?n[V]??null:null;if(W&&l){let H=W;if(typeof H.getChildren=="function")try{let v=H.getChildren(!0,!0,!1)??[],P=new Map;for(let z of l.children){let U=z;if(!U.id)continue;let G=U.tagName.toLowerCase();G==="script"||G==="style"||G==="link"||P.set(U,{id:U.id,start:1/0,end:-1/0})}let ne=z=>{let U=z;for(;U;){if(P.has(U))return U;if(U===l)return null;U=U.parentElement}return null};for(let z of v){if(typeof z.targets!="function"||typeof z.startTime!="function"||typeof z.duration!="function")continue;let U=z.startTime(),G=z.parent;for(;G&&G!==W&&typeof G.startTime=="function";)U+=G.startTime(),G=G.parent;let De=U+z.duration();if(!(!Number.isFinite(U)||!Number.isFinite(De)))for(let Se of z.targets()){if(!(Se instanceof Element))continue;let Ce=ne(Se);if(!Ce)continue;let ve=P.get(Ce);ve&&(ve.start=Math.min(ve.start,U),ve.end=Math.max(ve.end,De))}}let ee=Q.length>0?Math.max(...Q.map(z=>z.track))+1:0;for(let[z,U]of P){if(U.start===1/0||U.end===-1/0)continue;let G=z;if($.has(G.id))continue;let De=Math.max(0,U.end-U.start);if(De<=0)continue;let Se=I(U.start,De);Se<=0||(he=Math.max(he,U.start+Se),Q.push({id:G.id,label:G.getAttribute("data-timeline-label")??G.getAttribute("data-label")??G.getAttribute("aria-label")??G.id,start:U.start,duration:Se,track:Number.parseInt(G.getAttribute("data-track-index")??G.getAttribute("data-track")??"",10)||ee,kind:"element",tagName:G.tagName.toLowerCase(),compositionId:G.getAttribute("data-composition-id"),compositionAncestors:V?[V]:[],parentCompositionId:V,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:G.getAttribute("data-timeline-role"),timelineLabel:G.getAttribute("data-timeline-label"),timelineGroup:G.getAttribute("data-timeline-group"),timelinePriority:Ee(G.getAttribute("data-timeline-priority"))}),$.add(G.id))}}catch(v){O("runtime.timeline.site1",v)}}if(l&&N!=null&&N>0){let H=Q.length>0?Math.max(...Q.map(v=>v.track))+1:0;for(let v of l.children){let P=v;if(!P.id||$.has(P.id))continue;let ne=P.getAttribute("data-timeline-role");if(ne!=="overlay"&&ne!=="persistent-overlay")continue;let ee=P.tagName.toLowerCase();if(ee==="script"||ee==="style"||ee==="link"||ee==="meta"||window.getComputedStyle(P).display==="none")continue;let U=I(0,N);U<=0||(he=Math.max(he,U),Q.push({id:P.id,label:P.getAttribute("data-timeline-label")??P.getAttribute("data-label")??P.getAttribute("aria-label")??P.id,start:0,duration:U,track:Number.parseInt(P.getAttribute("data-track-index")??P.getAttribute("data-track")??"",10)||H,kind:"element",tagName:ee,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:V?[V]:[],parentCompositionId:V,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:ne,timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:Ee(P.getAttribute("data-timeline-priority"))}),$.add(P.id))}}us(Q);for(let H of a){if(H===l)continue;let v=H.getAttribute("data-composition-id");if(!v||!c(v))continue;let P=i.resolveStartForElement(H,0),ne=xn(H);if((ne==null||ne<=0)&&wi(H)!=null){let G=wi(H);ne=Math.max(0,G-P)}let ee=r(v),z=ne&&ne>0?ne:ee;if(z==null||z<=0)continue;let U=I(P,z);U<=0||_.push({id:v,label:H.getAttribute("data-label")??v,start:P,duration:U,thumbnailUrl:pt(H.getAttribute("data-thumbnail-url")),avatarName:null})}let X=Math.max(1,Math.min(Math.max(he||1,N??0),t.maxTimelineDurationSeconds));return{source:"hf-preview",type:"timeline",durationInFrames:A&&j==null?Number.POSITIVE_INFINITY:Math.max(1,Math.round(X*Math.max(1,t.canonicalFps))),clips:Q,scenes:_,compositionWidth:Ee(l?.getAttribute("data-width"))??1920,compositionHeight:Ee(l?.getAttribute("data-height"))??1080}}var le=jo(Zr(),1),Xr=le.default,Nc=le.default.stringify,Cc=le.default.fromJSON,Mc=le.default.plugin,Tc=le.default.parse,kc=le.default.list,vc=le.default.document,Lc=le.default.comment,_c=le.default.atRule,Rc=le.default.rule,Dc=le.default.decl,Bc=le.default.root,Oc=le.default.CssSyntaxError,Pc=le.default.Declaration,Ic=le.default.Container,Wc=le.default.Processor,Hc=le.default.Document,qc=le.default.Comment,Uc=le.default.Warning,zc=le.default.AtRule,jc=le.default.Result,Gc=le.default.Input,Vc=le.default.Rule,$c=le.default.Root,Kc=le.default.Node;function zn(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ba(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function Oa(t,e,n){let i=Pa(t,e,n),r=i.trim();if(!r||/^(html|body|:root|\*)$/i.test(r))return t;let o=new RegExp(`\\[\\s*data-composition-id\\s*=\\s*(["'])${zn(n)}\\1\\s*\\]`,"g");if(o.test(r))return i.replace(o,e);let s=i.match(/^\s*/)?.[0]??"",c=i.match(/\s*$/)?.[0]??"";return`${s}${e} ${r}${c}`}function Pa(t,e,n){let i=zn(n),r=String.raw`\[\s*data-composition-id\s*=\s*(?:"${i}"|'${i}')\s*\]`,o=String.raw`\s*\[\s*data-(?:start|duration)\s*=\s*(?:"[^"]*"|'[^']*')\s*\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Ia=new Set(["keyframes","-webkit-keyframes","font-face"]);function Wa(t){return t?.type==="atrule"}function Ha(t){let e=t.parent;for(;e;){if(Wa(e)&&Ia.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function jn(t,e,n){let i=e.trim();if(!t||!i)return t;let r=n||`[data-composition-id="${Ba(i)}"]`,o=Xr.parse(t);return o.walkRules(s=>{Ha(s)||(s.selectors=s.selectors.map(c=>Oa(c,r,i)))}),o.toResult({map:!1}).css}function eo(t,e,n="[HyperFrames] composition script error:",i,r=e){let o=JSON.stringify(e),s=JSON.stringify(r),c=JSON.stringify(n),u=zn(e),l=JSON.stringify(i??null),a=JSON.stringify(String.raw`\[\s*data-composition-id\s*=\s*(?:"${u}"|'${u}')\s*\]`),f=JSON.stringify(String.raw`\s*\[\s*data-(?:start|duration)\s*=\s*(?:"[^"]*"|'[^']*')\s*\]`);return`(function(){
var __hfCompId = ${o};
var __hfTimelineCompId = ${s};
var __hfErrorLabel = ${c};
var __hfEscapeAttr = function(value) {
return (value + "").replace(/\\\\/g, "\\\\\\\\").replace(/"/g, "\\\\\\"");
};
var __hfRootSelector = ${l} || (__hfCompId
? '[data-composition-id="' + __hfEscapeAttr(__hfCompId) + '"]'
: "");
var __hfRoot = null;
var __hfRootSelectorPattern = ${a};
var __hfTimingSelectorPattern = ${f};
var __hfNormalizeSelector = function(selector) {
if (!__hfCompId || typeof selector !== "string") return selector;
return selector
.replace(new RegExp(__hfRootSelectorPattern + '(?:' + __hfTimingSelectorPattern + ')+', 'g'), __hfRootSelector)
.replace(new RegExp('(?:' + __hfTimingSelectorPattern + ')+' + __hfRootSelectorPattern, 'g'), __hfRootSelector);
};
var __hfFindRoot = function() {
if (!__hfRoot && __hfRootSelector) {
__hfRoot = window.document.querySelector(__hfRootSelector);
}
return __hfRoot;
};
var __hfContains = function(node) {
var root = __hfFindRoot();
return !root || node === root || root.contains(node);
};
var __hfQueryAll = function(selector) {
var root = __hfFindRoot();
if (!root || typeof selector !== "string") {
return window.document.querySelectorAll(selector);
}
return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {
return __hfContains(node);
});
};
var __hfQueryOne = function(selector) {
var matches = __hfQueryAll(selector);
return matches[0] || null;
};
var __hfGetElementById = function(id) {
var found = window.document.getElementById(id);
if (found && __hfContains(found)) return found;
var root = __hfFindRoot();
if (!root) return found || null;
var idValue = id + "";
if (root.id === idValue) return root;
if (typeof root.querySelector !== "function") return null;
if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {
try {
return root.querySelector("#" + CSS.escape(idValue)) || null;
} catch {}
}
try {
return root.querySelector('[id="' + __hfEscapeAttr(idValue) + '"]') || null;
} catch {}
return null;
};
var __hfScopedDocument = typeof Proxy === "function"
? new Proxy(window.document, {
get: function(target, prop, receiver) {
if (prop === "querySelector") return __hfQueryOne;
if (prop === "querySelectorAll") return __hfQueryAll;
if (prop === "getElementById") return __hfGetElementById;
var value = Reflect.get(target, prop, target);
return typeof value === "function" ? value.bind(target) : value;
},
})
: window.document;
var __hfTimelineRegistryProxy = null;
var __hfGetTimelineRegistry = function() {
window.__timelines = window.__timelines || {};
if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {
return window.__timelines;
}
if (!__hfTimelineRegistryProxy) {
__hfTimelineRegistryProxy = new Proxy(window.__timelines, {
get: function(target, prop, receiver) {
return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);
},
set: function(target, prop, value, receiver) {
return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);
},
});
}
return __hfTimelineRegistryProxy;
};
var __hfScopedWindow = typeof Proxy === "function"
? new Proxy(window, {
get: function(target, prop, receiver) {
if (prop === "__timelines") return __hfGetTimelineRegistry();
var value = Reflect.get(target, prop, target);
return typeof value === "function" ? value.bind(target) : value;
},
set: function(target, prop, value, receiver) {
if (prop === "__timelines") {
target.__timelines = value || {};
__hfTimelineRegistryProxy = null;
return true;
}
return Reflect.set(target, prop, value, target);
},
})
: window;
var __hfResolveGsapTarget = function(target) {
if (typeof target !== "string") return target;
return __hfQueryAll(target);
};
var __hfScopeTimeline = function(timeline) {
if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;
["to", "from", "fromTo", "set"].forEach(function(method) {
var original = timeline[method];
if (typeof original !== "function") return;
timeline[method] = function(target) {
var args = Array.prototype.slice.call(arguments);
args[0] = __hfResolveGsapTarget(target);
return original.apply(timeline, args);
};
});
try {
Object.defineProperty(timeline, "__hfScopedCompositionRoot", {
value: __hfFindRoot(),
configurable: true,
});
} catch {
// Best-effort: timelines coming from user code may have a frozen target
// or a non-extensible defineProperty path. Swallow \u2014 the scoped root
// is an enrichment, not a correctness invariant for playback.
}
return timeline;
};
var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;
var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"
? __hfBaseGsap
: new Proxy(__hfBaseGsap, {
get: function(target, prop, receiver) {
if (prop === "timeline") {
return function() {
return __hfScopeTimeline(target.timeline.apply(target, arguments));
};
}
if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {
return function(firstArg) {
var args = Array.prototype.slice.call(arguments);
args[0] = __hfResolveGsapTarget(firstArg);
return target[prop].apply(target, args);
};
}
if (prop === "utils" && target.utils && typeof Proxy === "function") {
return new Proxy(target.utils, {
get: function(utilsTarget, utilsProp, utilsReceiver) {
if (utilsProp === "toArray") {
return function(firstArg) {
var args = Array.prototype.slice.call(arguments);
args[0] = __hfResolveGsapTarget(firstArg);
return utilsTarget.toArray.apply(utilsTarget, args);
};
}
if (utilsProp === "selector") {
return function(base) {
var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;
var root = baseEl || __hfFindRoot();
return function(selector) {
if (!root || typeof selector !== "string") return [];
return Array.prototype.slice.call(root.querySelectorAll(selector));
};
};
}
var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);
return typeof value === "function" ? value.bind(utilsTarget) : value;
},
});
}
var value = Reflect.get(target, prop, target);
return typeof value === "function" ? value.bind(target) : value;
},
});
var __hfBaseHyperframes = window.__hyperframes;
var __hfScopedHyperframes = !__hfBaseHyperframes
? __hfBaseHyperframes
: Object.assign({}, __hfBaseHyperframes, {
getVariables: function() {
var byComp = window.__hfVariablesByComp;
var scoped = byComp && __hfCompId ? byComp[__hfCompId] : null;
return scoped ? Object.assign({}, scoped) : {};
},
});
var __hfRun = function() {
try {
(function(document, gsap, window, __hyperframes) {
${t}
}).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);
} catch (_err) {
console.error(__hfErrorLabel, __hfCompId, _err);
}
};
__hfFindRoot();
__hfRun();
})();`}function to(){if(typeof document>"u")return{};let t=Gn(document.documentElement),e=qa();return{...t,...e}}function Gn(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function qa(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var Ua=8e3,za=/^(?![a-zA-Z][a-zA-Z\d+\-.]*:)(?!\/\/)(?!\/)(?!\.\.?\/).+/,ja=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),Ua)});function Vn(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}function no(t,e){let n=t.trim();if(!n)return t;try{return za.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function Ga(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}async function $n(t){let e=null;t.hostCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(a=>a.getAttribute("data-composition-id")===t.hostCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.hostCompositionId||null;if(t.headStyles)for(let l of t.headStyles){let a=l.cloneNode(!0);a instanceof HTMLStyleElement&&(i&&(a.textContent=jn(a.textContent||"",i)),document.head.appendChild(a),t.injectedStyles.push(a))}let r=Array.from(n.querySelectorAll("style"));for(let l of r){let a=l.cloneNode(!0);a instanceof HTMLStyleElement&&(i&&(a.textContent=jn(a.textContent||"",i)),document.head.appendChild(a),t.injectedStyles.push(a))}let o=[];if(t.headScripts)for(let l of t.headScripts){let a=l.getAttribute("type")?.trim()??"",f=l.getAttribute("src")?.trim()??"";if(f){let m=no(f,t.compositionUrl);o.push({kind:"external",src:m,type:a})}else{let m=l.textContent?.trim()??"";m&&o.push({kind:"inline",content:m,type:a,scopeCompositionId:i})}}let s=Array.from(n.querySelectorAll("script")),c=[...o];for(let l of s){let a=l.getAttribute("type")?.trim()??"",f=l.getAttribute("src")?.trim()??"";if(f){let m=no(f,t.compositionUrl);c.push({kind:"external",src:m,type:a})}else{let m=l.textContent?.trim()??"";m&&c.push({kind:"inline",content:m,type:a,scopeCompositionId:i})}l.parentNode?.removeChild(l)}let u=Array.from(n.querySelectorAll("style"));for(let l of u)l.parentNode?.removeChild(l);if(e){let l=document.importNode(e,!0),a=e.getAttribute("data-width"),f=e.getAttribute("data-height"),m=t.parseDimensionPx(a),y=t.parseDimensionPx(f);for(a&&t.host.setAttribute("data-width",a),f&&t.host.setAttribute("data-height",f),m&&t.host instanceof HTMLElement&&(t.host.style.width=m),y&&t.host instanceof HTMLElement&&(t.host.style.height=y);l.firstChild;)t.host.appendChild(l.firstChild)}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(i){let l={...t.declaredVariableDefaults??{},...Ga(t.host)};Object.keys(l).length>0&&(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[i]=l)}for(let l of c){let a=document.createElement("script");if(l.type&&(a.type=l.type),a.async=!1,l.kind==="external"?a.src=l.src:l.type.toLowerCase()==="module"?a.textContent=l.content:l.scopeCompositionId?a.textContent=eo(l.content,l.scopeCompositionId):a.textContent=`(function(){${l.content}})();`,document.body.appendChild(a),t.injectedScripts.push(a),l.kind==="external"){let f=await ja(a);f.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.hostCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:l.src,loadStatus:f.status,elapsedMs:f.elapsedMs}})}}}async function io(t){let e=Array.from(document.querySelectorAll("[data-composition-id]:not([data-composition-src])")).filter(n=>{if(n.children.length>0)return!1;let i=n.getAttribute("data-composition-id");return i?!!document.querySelector(`template#${CSS.escape(i)}-template`):!1});if(e.length!==0)for(let n of e){let i=n.getAttribute("data-composition-id"),r=document.querySelector(`template#${CSS.escape(i)}-template`);Vn(n),await $n({host:n,hostCompositionId:i,hostCompositionSrc:`template#${i}-template`,sourceNode:r.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function ro(t){let e=Array.from(document.querySelectorAll("[data-composition-src]"));e.length!==0&&await Promise.all(e.map(async n=>{let i=n.getAttribute("data-composition-src");if(!i)return;let r=null;try{r=new URL(i,document.baseURI)}catch{r=null}Vn(n);try{let o=n.getAttribute("data-composition-id"),s=o!=null?document.querySelector(`template#${CSS.escape(o)}-template`):null;if(s){await $n({host:n,hostCompositionId:o,hostCompositionSrc:i,sourceNode:s.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:r,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let c=await fetch(i);if(!c.ok)throw new Error(`HTTP ${c.status}`);let u=await c.text(),a=new DOMParser().parseFromString(u,"text/html"),f=(o?a.querySelector(`template#${CSS.escape(o)}-template`):null)??a.querySelector("template"),m=f?f.content:a.body,y=f?void 0:Array.from(a.head.querySelectorAll("style")),C=f?void 0:Array.from(a.head.querySelectorAll("script"));await $n({host:n,hostCompositionId:o,hostCompositionSrc:i,sourceNode:m,hasTemplate:!!f,fallbackBodyInnerHtml:a.body.innerHTML,compositionUrl:r,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:y,headScripts:C,declaredVariableDefaults:Gn(a.documentElement),onDiagnostic:t.onDiagnostic})}catch(o){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:n.getAttribute("data-composition-id"),hostCompositionSrc:i,errorMessage:o instanceof Error?o.message:"unknown_error"}}),Vn(n)}}))}function Va(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function $a(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function Ka(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Kn(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=$a();for(let i of e){let r=null;if(i.wordId&&(r=Va(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let u=t.getTweensOf(r).filter(a=>a.vars.color!==void 0).sort((a,f)=>a.startTime()-f.startTime()),l=u.length>0?String(u[0].vars.color):"";for(let a of u)String(a.vars.color)===l?i.dimColor&&(a.vars.color=i.dimColor):i.activeColor&&(a.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=Ka(r);t.set(c,o)}}}).catch(()=>{})}var Xt=class{constructor(e){ye(this,"_baseTime",0);ye(this,"_playStartMs",null);ye(this,"_rate",1);ye(this,"_duration",1/0);ye(this,"_nowMs");ye(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function oo(t){return!Number.isFinite(t)||t<=0?1:t}var en=class{constructor(){ye(this,"_ctx",null);ye(this,"_bufferCache",new Map);ye(this,"_activeSources",[]);ye(this,"_masterGain",null);ye(this,"_rateAnchorCtx",0);ye(this,"_rateAnchorComp",0);ye(this,"_rate",1);ye(this,"_paused",!0);ye(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(!this._ctx)return null;try{let r=await(await fetch(n)).arrayBuffer(),o=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,o),o}catch(i){return O("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,u=1){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let l=oo(u),a=this._ctx.createBufferSource();a.buffer=n,a.playbackRate.value=l;let f=this._ctx.createGain();f.gain.value=s,a.connect(f),f.connect(this._masterGain);let m=o-i,y=this._ctx.currentTime;if(this._rate=l,this._rateAnchorCtx=y,this._rateAnchorComp=o,m>=0)a.start(0,m+r);else{let w=-m/l;a.start(y+w,r)}e.muted=!0;let C={el:e,sourceNode:a,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:y};return this._activeSources.push(C),this._paused=!1,C}catch(l){return O("webAudioTransport.schedule",l),null}}setRate(e){let n=oo(e);if(n!==this._rate){this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){O("webAudioTransport.setRate",r)}}}stopAll(){for(let e of this._activeSources)try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var so="data-hf-authored-duration",ao="data-hf-authored-end";function lo(){let t=Fi(),e=window,n=null,i=null,r=[],o=new Set,s=null;if(typeof e.__hfRuntimeTeardown=="function")try{e.__hfRuntimeTeardown()}catch(d){O("runtime.init.site1",d)}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let c=d=>{r.push(d)},u=(d,h,p)=>{let S=p??`${d}:${JSON.stringify(h)}`;o.has(S)||(o.add(S),be({source:"hf-preview",type:"diagnostic",code:d,details:h}))},l=d=>{let h={scale:1,focusX:960,focusY:540},p=[],S=[],b={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>p,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>S,getRenderState:()=>({...b,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},a=1/60,f=.75,m=2,y=.05,C=100,w=240,x=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},R=d=>{let h=d.toLowerCase();return h.includes("cannot read properties of null")||h.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:h.includes("failed to execute 'queryselector'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:h.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},T=d=>{if(d==null||d.trim()==="")return null;let h=Number.parseFloat(d);return!Number.isFinite(h)||h<=0?null:`${h}px`},M=()=>{let d=document.querySelector('[data-composition-id][data-root="true"]');if(d instanceof HTMLElement)return d;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.length===0?null:h.find(p=>!p.parentElement?.closest("[data-composition-id]"))??h[0]??null},j=()=>{let d=M();if(!d)return;let h=T(d.getAttribute("data-width")),p=T(d.getAttribute("data-height"));h&&(d.style.width=h),p&&(d.style.height=p),h&&d.style.setProperty("--comp-width",h),p&&d.style.setProperty("--comp-height",p)},L=()=>{let d=M(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(p=>p.hasAttribute("data-duration")||p.hasAttribute("data-end"));for(let p of h){if(d&&p===d)continue;let S=p.getAttribute("data-duration"),b=p.getAttribute("data-end");S!=null&&!p.hasAttribute(so)&&p.setAttribute(so,S),b!=null&&!p.hasAttribute(ao)&&p.setAttribute(ao,b),p.removeAttribute("data-duration"),p.removeAttribute("data-end")}},F=()=>{let d=M();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let h=T(d.getAttribute("data-width")),p=T(d.getAttribute("data-height"));h&&(d.style.width=h),p&&(d.style.height=p);let S=Array.from(d.children);for(let b of S){let D=b.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!b.hasAttribute("data-start"))continue;let J=(b.style.top==="0px"||b.style.top==="0")&&(b.style.left==="0px"||b.style.left==="0")&&b.style.width==="100%"&&b.style.height==="100%",oe=/translate\(\s*-50%\s*,\s*-50%\s*\)/.test(b.style.transform);if(J&&oe&&!b.hasAttribute("data-width")&&!b.hasAttribute("data-height")){let Be=b.style.top,se=b.style.left,Ie=b.style.width,re=b.style.height;b.style.top="",b.style.left="",b.style.width="",b.style.height="";let Y=window.getComputedStyle(b);Y.top!=="auto"||Y.bottom!=="auto"||Y.left!=="auto"||Y.right!=="auto"||Y.width!=="0px"||Y.height!=="0px"||(b.style.top=Be,b.style.left=se,b.style.width=Ie,b.style.height=re)}let te=window.getComputedStyle(b),ce=te.position;if(ce!=="absolute"&&ce!=="fixed"&&(b.style.position="absolute"),!!b.style.top||!!b.style.bottom||te.top!=="auto"||te.bottom!=="auto"||(b.style.top="0"),!!b.style.left||!!b.style.right||te.left!=="auto"||te.right!=="auto"||(b.style.left="0"),D!=="audio"){let Be=T(b.getAttribute("data-width")),se=T(b.getAttribute("data-height")),Ie=te.width!=="0px"&&te.width!=="auto",re=te.height!=="0px"&&te.height!=="auto";Be?!b.style.width&&!Ie&&(b.style.width=Be):!b.style.width&&te.width==="0px"&&(b.style.width="100%"),se?!b.style.height&&!re&&(b.style.height=se):!b.style.height&&te.height==="0px"&&(b.style.height="100%")}}},g=(d,h=0,p)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,h),A=(d,h)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),E=!!document.querySelector("[data-composition-src]"),N=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of d){let p=h.getAttribute("data-composition-id");if(p&&h.children.length===0&&document.querySelector(`template#${CSS.escape(p)}-template`)){N=!0;break}}}let k=!E&&!N,B=d=>{if(!d||typeof d.duration!="function")return null;try{let h=Number(d.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},I=d=>typeof d=="number"&&Number.isFinite(d)&&d>a,Q=d=>{let h=Number(d.getAttribute("data-duration"));if(Number.isFinite(h)&&h>0)return h;let p=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),S=Number.isFinite(p)?Math.max(0,p):0;return Number.isFinite(d.duration)&&d.duration>S?Math.max(0,d.duration-S):null},_=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let h=0;for(let p of d){let S=g(p,0);if(!Number.isFinite(S))continue;let b=Q(p);b==null||b<=a||(h=Math.max(h,Math.max(0,S)+b))}return h>a?h:null},ue=()=>{let d=M();if(!d)return null;let h=window.__timelines??{},p=Qe({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),S=0,b=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let D of b){if(!(D instanceof Element)||D.parentElement?.closest("[data-composition-id]")!==d)continue;let oe=p.resolveStartForElement(D,0),te=p.resolveDurationForElement(D);!Number.isFinite(oe)||te==null||te<=0||(S=Math.max(S,Math.max(0,oe)+te))}return S>a?S:null},he=()=>{let d=_();return typeof d!="number"||!Number.isFinite(d)||d<=a?null:d},$=d=>I(d)?Math.max(a,d*f):a,V=(d,h=0)=>{let p=B(d),S=he(),b=ue(),D=Math.max(S??0,b??0),J=Number.isFinite(h)&&h>a?h:0,oe=0;I(p)?oe=Math.max(p,D,J):I(D)?oe=Math.max(D,J):oe=J;let te=Math.max(1,Number(t.maxTimelineDurationSeconds)||1800);return oe>0?Math.max(0,Math.min(oe,te)):0},W=()=>{let d=window.__timelines??{},h=Qe({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),p=he(),S=ue(),b=Math.max(p??0,S??0)||null,D=$(b),J=re=>{let Y=document.querySelector(`[data-composition-id="${CSS.escape(re)}"]`);return Y?h.resolveStartForElement(Y,0):0},oe=re=>{let Y=window.gsap;if(!Y||typeof Y.timeline!="function")return null;let de=Y.timeline({paused:!0});for(let pe of re)de.add(pe.timeline,J(pe.compositionId));return de},te=(re,Y)=>{if(!I(re))return null;let de=window.gsap;if(!de||typeof de.timeline!="function")return null;let pe=de.timeline({paused:!0});if(Y)try{pe.add(Y,0)}catch(ae){O("runtime.init.site2",ae)}let ge=pe;if(typeof ge.to=="function")try{ge.to({},{duration:re})}catch(ae){O("runtime.init.site3",ae)}return pe},ce=(re,Y)=>{let de=re;if(typeof de.getChildren!="function")return[];try{let pe=de.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let ge=[];for(let ae of Y)if(!pe.some(Le=>Le===ae.timeline))try{let Le=J(ae.compositionId);re.add(ae.timeline,Le),ge.push(ae.compositionId)}catch(Le){O("runtime.init.site4",Le)}return ge}catch{return[]}},Te=M(),me=Te?.getAttribute("data-composition-id")??null;if(!me)return{timeline:null};let we=d[me]??null,se=(()=>{if(!Te)return[];let re=new Set,Y=Array.from(Te.querySelectorAll("[data-composition-id]")),de=[];for(let pe of Y){let ge=pe.getAttribute("data-composition-id");if(!ge||ge===me||re.has(ge))continue;re.add(ge);let ae=d[ge]??null;if(!ae||typeof ae.play!="function"||typeof ae.pause!="function")continue;let Ne=B(ae);de.push({compositionId:ge,timeline:ae,durationSeconds:Ne??0})}return de})(),Ie=re=>{for(let Y of re){let de=Y.timeline;if(typeof de.paused=="function")try{de.paused(!1)}catch(pe){O("runtime.init.site5",pe)}}};if(se.length>0&&Ie(se),we){let re=se.length>0?ce(we,se):[];if((se.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id='"+me+"'])"))&&(X=!0),re.length>0)try{let ae=we.time();we.seek(ae,!1)}catch{}let Y=B(we);if(!I(Y)&&se.length>0){let ae=se.map(Oo=>Oo.compositionId),Ne=oe(se),Le=B(Ne);if(Ne&&I(Le))return{timeline:Ne,selectedTimelineIds:ae,selectedDurationSeconds:Le,mediaDurationFloorSeconds:p,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:me,rootDurationSeconds:Y,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:Le,mediaDurationFloorSeconds:p,authoredCompositionDurationFloorSeconds:S,selectedTimelineIds:ae,autoNestedChildren:re}}};let cn=te(b??0,we),dn=B(cn);if(cn&&I(dn))return{timeline:cn,selectedTimelineIds:[me],selectedDurationSeconds:dn,mediaDurationFloorSeconds:p,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:me,rootDurationSeconds:Y,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:p,authoredCompositionDurationFloorSeconds:S,selectedDurationSeconds:dn,selectedTimelineIds:[me],autoNestedChildren:re}}}}if(!I(Y)&&se.length===0){let ae=te(b??0,we),Ne=B(ae);if(ae&&I(Ne))return{timeline:ae,selectedTimelineIds:[me],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:p,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:me,rootDurationSeconds:Y,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:p,authoredCompositionDurationFloorSeconds:S,selectedDurationSeconds:Ne,selectedTimelineIds:[me]}}}}let de=Te?.getAttribute("data-duration"),pe=de?parseFloat(de):null,ge=Math.max(I(pe)?pe:0,S??0);if(ge>0&&I(ge)&&I(Y)&&ge>=Y+.5){let ae=we;if(typeof ae.to=="function")try{ae.to({},{duration:0},ge)}catch(Le){O("runtime.init.site6",Le)}let Ne=B(we);if(I(Ne))return{timeline:we,selectedTimelineIds:[me],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:p,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:me,rootDurationSeconds:Y,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:S,newDur:Ne}}}}return{timeline:we,selectedTimelineIds:[me],selectedDurationSeconds:Y,mediaDurationFloorSeconds:p,diagnostics:re.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:me,selectedDurationSeconds:Y,autoNestedChildren:re}}:void 0}}if(se.length>0){let re=se.map(pe=>pe.compositionId),Y=oe(se),de=B(Y);if(Y)return{timeline:Y,selectedTimelineIds:re,selectedDurationSeconds:de,mediaDurationFloorSeconds:p,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:me,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:D,selectedDurationSeconds:de,mediaDurationFloorSeconds:p,selectedTimelineIds:re}}}}return{timeline:null}},X=!1,xe=()=>{if(!k)return!1;let d=t.capturedTimeline,h=B(d),p=I(h);if(d&&p&&X)return!1;let S=W();return S.timeline?d&&d===S.timeline?(typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1):(t.capturedTimeline=S.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate),S.diagnostics&&be({source:"hf-preview",type:"diagnostic",code:S.diagnostics.code,details:S.diagnostics.details}),be({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:S.selectedTimelineIds??[],selectedDurationSeconds:S.selectedDurationSeconds??null,mediaDurationFloorSeconds:S.mediaDurationFloorSeconds??null}}),!0):!1},Fe=()=>{let d=M();if(!(d instanceof HTMLElement))return;let h=d.getBoundingClientRect(),p=Number(d.getAttribute("data-width")),S=Number(d.getAttribute("data-height")),b=window.getComputedStyle(d),D=Number.isFinite(p)&&p>0&&Number.isFinite(S)&&S>0,J=h.width<=0||h.height<=0||d.clientWidth<=0||d.clientHeight<=0;!D||!J||u("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:p,declaredHeight:S,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:b.display,visibility:b.visibility,overflow:b.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},H=()=>{t.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,Fe()}))},v=()=>{n=d=>{let h=x(d.error??d.message).slice(0,w);if(!h)return;let p=R(h);be({source:"hf-preview",type:"diagnostic",code:p.code,details:{category:p.category,message:h,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let h=x(d.reason).slice(0,w);if(!h)return;let p=R(h);be({source:"hf-preview",type:"diagnostic",code:`${p.code}_unhandled_rejection`,details:{category:`${p.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",n),window.addEventListener("unhandledrejection",i)},P=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel='stylesheet']"));for(let p of d){let S=()=>{if(!(p instanceof Element))return;let b=p.tagName.toLowerCase(),D=p.getAttribute("src")??p.getAttribute("href")??p.getAttribute("poster")??null,J=b==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";u(J,{tagName:b,assetUrl:D,currentSrc:(p instanceof HTMLImageElement||p instanceof HTMLMediaElement)&&p.currentSrc||null,readyState:p instanceof HTMLMediaElement?p.readyState:null,networkState:p instanceof HTMLMediaElement?p.networkState:null},`${J}:${b}:${D??"unknown"}`)};p.addEventListener("error",S),c(()=>{p.removeEventListener("error",S)})}let h=document.fonts;h&&h.ready.then(()=>{if(t.tornDown)return;let p=Array.from(h).filter(S=>S.status==="error").map(S=>S.family).filter(S=>!!S).slice(0,10);p.length!==0&&u("runtime_font_load_issue",{failedFamilies:p,totalFaces:Array.from(h).length},`runtime-font-load-issue:${p.join("|")}`)}).catch(()=>{})},ne=(d,h)=>{if(!d.timeline)return!1;let p=t.capturedTimeline;if(p&&p===d.timeline)return!1;let S=Math.max(0,t.currentTime||0),b=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(S,!1),b&&t.capturedTimeline.play()}catch(D){O("runtime.init.site7",D)}return be({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:S,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},ee=null,z=!1,U=new Set,G=()=>{t.tornDown||(ee!=null&&window.clearTimeout(ee),ee=window.setTimeout(()=>{if(t.tornDown)return;ee=null;let d=W();if(!d.timeline||!I(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){xe()&&(Ke(),Me(!0));return}if(z)return;let p=B(t.capturedTimeline),S=d.selectedDurationSeconds??B(d.timeline);I(S)&&(!I(p)||S>=p+y)&&ne(d,"manual")&&(z=!0,be({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:p??null,selectedDurationSeconds:S??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),Ke(),Me(!0))},C))},De=()=>{for(let d of U)d.removeEventListener("loadedmetadata",G),d.removeEventListener("durationchange",G);U.clear()},Se=!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,Ce=Si({onActivation:d=>{u("lazy_preload_activated",{clipCount:d},"lazy_preload_activated")}}),ve=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio")),h=Ce.isLazy(),p=!1;for(let S of d)U.has(S)||(U.add(S),p=!0,S.addEventListener("loadedmetadata",G),S.addEventListener("durationchange",G),(!h||Se)&&(S.preload!=="auto"&&(S.preload="auto"),S.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&S.load()));if(p&&!Se&&Ce.refresh(),Ce.isLazy()&&!Se){for(let S of d)S.hasAttribute("data-start")&&(S.hasAttribute("data-preload-eager")||((S.preload==="auto"||S.preload==="")&&(S.preload="metadata",S.load()),S.readyState<HTMLMediaElement.HAVE_METADATA&&S.load()));Ce.preloadAroundTime(Math.max(0,t.currentTime||0))}},$e=()=>{let d=D=>{let J=D.closest("[data-composition-id]"),oe=J?g(J,0):null,te=J?A(J,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:J,inheritedStart:oe,inheritedDuration:te}},h=Ot({shouldIncludeElement:D=>D.hasAttribute("data-start")||!!d(D).compositionRoot,resolveStartSeconds:D=>{let J=d(D);return g(D,J.inheritedStart??0)},resolveDurationSeconds:D=>{let J=d(D),oe=g(D,J.inheritedStart??0),te=Number.parseFloat(D.dataset.playbackStart??D.dataset.mediaStart??"0")||0,ce=J.inheritedStart!=null&&J.inheritedDuration!=null&&J.inheritedDuration>0?Math.max(0,J.inheritedStart+J.inheritedDuration-oe):null,Te=Number.isFinite(D.duration)&&D.duration>te?Math.max(0,D.duration-te):null;return Te!=null&&ce!=null?Math.min(Te,ce):Te??ce}}),p=t.mediaForceSyncNextTick;p&&(t.mediaForceSyncNextTick=!1),gi({clips:h.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted,userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:p,onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,be({source:"hf-preview",type:"media-autoplay-blocked"}))}});let S=document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null,b=Array.from(document.querySelectorAll("[data-start]"));for(let D of b){if(!(D instanceof HTMLElement))continue;let J=D.tagName.toLowerCase();if(J==="script"||J==="style"||J==="link"||J==="meta")continue;if(!D.getAttribute("data-composition-id")){let se=D.closest("[data-composition-id]")?.getAttribute("data-composition-id")??null;if(se&&se!==S)continue}let te=g(D,0),ce=A(D),Te=D.getAttribute("data-composition-id");if(Te){let Be=(window.__timelines??{})[Te],se=null;if(Be&&typeof Be.duration=="function"){let Ie=Number(Be.duration());Number.isFinite(Ie)&&Ie>0&&(se=Ie)}ce!=null&&ce>0&&se!=null?ce=Math.min(ce,se):(ce==null||ce<=0)&&se!=null&&(ce=se)}let me=ce!=null&&ce>0?te+ce:Number.POSITIVE_INFINITY,we=t.currentTime>=te&&(Number.isFinite(me)?t.currentTime<me:!0);D.style.visibility=we?"visible":"hidden"}},Me=d=>{let h=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),p=Date.now();(d||h!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||p-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=h,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=p,be({source:"hf-preview",type:"state",frame:h,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},Ke=()=>{L(),j(),F();let d=M();if(d){let p=T(d.getAttribute("data-width")),S=T(d.getAttribute("data-height")),b=p?parseInt(p,10):0,D=S?parseInt(S,10):0;b>0&&D>0&&be({source:"hf-preview",type:"stage-size",width:b,height:D})}xe();let h=Mi({canonicalFps:t.canonicalFps,maxTimelineDurationSeconds:t.maxTimelineDurationSeconds});window.__clipManifest=h,be(h),H()},Pe=(d,h=0)=>{for(let p of t.deterministicAdapters){try{d==="discover"&&p.discover(),d==="pause"&&p.pause(),d==="play"&&p.play&&p.play()}catch(S){O("runtime.init.site8",S)}if(d==="discover")try{p.seek({time:h})}catch(S){O("runtime.init.site9",S)}}};if(k)Kn();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:T,onDiagnostic:({code:h,details:p})=>{be({source:"hf-preview",type:"diagnostic",code:h,details:p})}};ro(d).then(()=>io(d)).finally(()=>{k=!0,Pe("discover",t.currentTime),ve(),P(),Kn(),Ke(),Me(!0)})}let Bt=Ai({postMessage:d=>be(d)});Bt.installPickerApi();let an=d=>{let h=Number(d);!Number.isFinite(h)||h<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,h)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let p=document.querySelectorAll("video, audio");for(let S of p)if(S instanceof HTMLMediaElement)try{S.playbackRate=t.playbackRate}catch(b){O("runtime.init.site10",b)}},fe=Ei({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:an,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,h)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==h&&(t.mediaForceSyncNextTick=!0),t.isPlaying=h,$e()},onStatePost:Me,onDeterministicSeek:d=>{for(let h of t.deterministicAdapters)try{h.seek({time:Number(d)||0})}catch(p){O("runtime.init.site11",p)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>V(t.capturedTimeline,0)});window.__player=l(fe),window.__playerReady=!0,window.__renderReady=!0,li(be),dt("composition_loaded",{duration:fe.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ai({onPlay:()=>{fe.play(),dt("composition_played",{time:fe.getTime()})},onPause:()=>{fe.pause(),dt("composition_paused",{time:fe.getTime()})},onSeek:(d,h)=>{let p=Math.max(0,d)/t.canonicalFps;fe.seek(p),dt("composition_seeked",{time:p})},onSetMuted:d=>{t.bridgeMuted=d;let h=d||t.mediaOutputMuted;Ae.setMuted(h);let p=document.querySelectorAll("video, audio");for(let S of p)S instanceof HTMLMediaElement&&(S.muted=h)},onSetVolume:d=>{t.bridgeVolume=d,Ae.setVolume(d);let h=document.querySelectorAll("video, audio");for(let p of h){if(!(p instanceof HTMLMediaElement))continue;let S=parseFloat(p.dataset.volume??""),b=Number.isFinite(S)?S:1;p.volume=b*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let h=d||t.bridgeMuted;Ae.setMuted(h);let p=document.querySelectorAll("video, audio");for(let S of p)S instanceof HTMLMediaElement&&(S.muted=h)},onSetPlaybackRate:d=>{an(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),Ae.setRate(t.playbackRate)},onEnablePickMode:()=>Bt.enablePickMode(),onDisablePickMode:()=>Bt.disablePickMode()}),xe(),t.capturedTimeline&&(fe._timeline=t.capturedTimeline),k&&setTimeout(()=>{let d=t.capturedTimeline;xe()&&t.capturedTimeline!==d&&(fe._timeline=t.capturedTimeline),Pe("discover",t.currentTime),Ke(),Me(!0)},0),t.deterministicAdapters=[xi(),ui({resolveStartSeconds:d=>g(d,0)}),di(),pi(),hi(),ci({getTimeline:()=>t.capturedTimeline})],v(),Pe("discover"),ve();let q=new Xt;t.transportClock=q;let Ae=new en,ii=!1;Ae.init().then(d=>{ii=d});let ut=0,ln=!1,ct=d=>{let h=t.capturedTimeline;if(h)try{typeof h.totalTime=="function"?h.totalTime(d,!1):h.seek(d,!1)}catch(p){O("runtime.init.transport.seek",p)}for(let p of t.deterministicAdapters)try{p.seek({time:d})}catch(S){O("runtime.init.transport.adapter",S)}},ri=()=>{if(!(t.tornDown||ln)){ln=!0;try{if(t.transportRafId=window.requestAnimationFrame(ri),ut+=1,ut%60===0&&!(q.isPlaying()&&t.capturedTimeline!=null&&q.now()<m)){let p=t.capturedTimeline;if(xe()){t.capturedTimeline&&!fe._timeline&&(fe._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==p&&t.capturedTimeline.pause();let S=V(t.capturedTimeline,0);S>0&&q.setDuration(S),Ke()}}if(ut%20===0&&Ke(),ut%30===0&&ve(),t.capturedTimeline){let h=V(t.capturedTimeline,0);h>0&&q.setDuration(h)}if(q.isPlaying()&&!t.mediaOutputMuted)if(Ae.isActive()&&Ae.context){let h=Ae.getTime();h>=0&&q.attachAudioSource({currentTimeSeconds:h})}else{let h=document.querySelectorAll("audio[data-start]"),p=!1;for(let S of h){if(!(S instanceof HTMLMediaElement)||!S.isConnected)continue;let b=Number.parseFloat(S.dataset.start??""),D=Number.parseFloat(S.dataset.duration??""),J=Number.isFinite(D)&&D>0?b+D:1/0,oe=Number.parseFloat(S.dataset.playbackStart??S.dataset.mediaStart??"0")||0;if(Number.isFinite(b)&&t.currentTime>=b&&t.currentTime<J){S.paused?S.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(q.attachAudioSource({currentTimeSeconds:t.currentTime}),p=!0):(q.attachAudioSource({el:S,compositionStart:b,mediaStart:oe}),p=!0);break}}!p&&q.hasAudioSource()&&q.detachAudioSource()}else q.hasAudioSource()&&q.detachAudioSource();let d=q.now();if(t.currentTime=d,ct(d),q.isPlaying()&&q.reachedEnd()){Ae.stopAll(),q.detachAudioSource(),q.pause(),t.isPlaying=!1;let h=q.getDuration();Number.isFinite(h)&&(q.seek(h),t.currentTime=h,ct(h)),Pe("pause"),$e(),Me(!0);return}q.isPlaying()&&($e(),Ce.isLazy()&&ut%10===0&&Ce.sync(Math.max(0,t.currentTime||0))),Me(!1)}finally{ln=!1}}},oi=d=>{let h=document.querySelectorAll("video, audio");for(let p of h){if(!(p instanceof HTMLMediaElement)||!p.isConnected)continue;let S=Number.parseFloat(p.dataset.start??"");if(!Number.isFinite(S))continue;let b=Number.parseFloat(p.dataset.duration??""),D=Number.isFinite(b)&&b>0?S+b:1/0;if(d<S||d>=D)continue;let J=Number.parseFloat(p.dataset.playbackStart??p.dataset.mediaStart??"0")||0,oe=d-S+J;if(oe>=0)try{p.currentTime=oe}catch{}}};if(fe.play=()=>{let d=t.capturedTimeline;if(!d||q.isPlaying())return;Ce.preloadAroundTime(Math.max(0,t.currentTime||0));let h=V(d,0);if(h>0&&(q.setDuration(h),q.reachedEnd()&&(q.seek(0),t.currentTime=0,ct(0))),d.pause(),!!q.play()){if(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,oi(q.now()),ii){let p=Ae.startGeneration(),S=document.querySelectorAll("audio[data-start]");for(let b of S){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let D=Number.parseFloat(b.dataset.start??"");if(!Number.isFinite(D))continue;let J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0,oe=Number.parseFloat(b.dataset.volume??""),te=Number.isFinite(oe)?oe:1;Ae.decodeAudioElement(b).then(ce=>{!ce||!q.isPlaying()||Ae.schedulePlayback(b,ce,D,J,q.now(),te*t.bridgeVolume,p,t.playbackRate)})}}Pe("play"),$e(),Me(!0)}},fe.pause=()=>{if(!q.isPlaying())return;Ae.stopAll(),q.detachAudioSource(),q.pause(),t.isPlaying=!1,t.currentTime=q.now(),t.mediaForceSyncNextTick=!0,oi(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),$e(),Me(!0)},fe.seek=d=>{let h=et(Math.max(0,Number(d)||0),t.canonicalFps);Ce.preloadAroundTime(h),Ae.stopAll(),q.detachAudioSource(),q.isPlaying()&&q.pause(),q.seek(h),t.currentTime=q.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let S=t.capturedTimeline;S&&S.pause(),ct(t.currentTime),Pe("pause"),$e(),Me(!0)},fe.renderSeek=d=>{let h=et(Math.max(0,Number(d)||0),t.canonicalFps);q.isPlaying()&&q.pause(),q.seek(h),t.currentTime=q.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,ct(t.currentTime),$e(),Me(!0)},fe.getTime=()=>q.now(),fe.getDuration=()=>{let d=q.getDuration();return Number.isFinite(d)?d:0},fe.isPlaying=()=>q.isPlaying(),fe.setPlaybackRate=d=>{an(d),q.setRate(t.playbackRate)},t.capturedTimeline){let d=V(t.capturedTimeline,0);d>0&&q.setDuration(d),t.capturedTimeline.pause()}let si=window.__player;if(si){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let h of d)Object.defineProperty(si,h,{get:()=>fe[h],set:p=>{fe[h]=p},configurable:!0})}t.transportRafId=window.requestAnimationFrame(ri),Ke(),Me(!0);let un=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,Ae.destroy(),ee!=null&&(window.clearTimeout(ee),ee=null),s!=null&&(window.cancelAnimationFrame(s),s=null),De(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),n&&(window.removeEventListener("error",n),n=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),Bt.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(h){O("runtime.init.site12",h)}t.deterministicAdapters=[];for(let d of r.splice(0))try{d()}catch(h){O("runtime.init.site13",h)}for(let d of t.injectedCompStyles)try{d.remove()}catch(h){O("runtime.init.site14",h)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(h){O("runtime.init.site15",h)}t.injectedCompScripts=[],t.capturedTimeline=null,e.__hfRuntimeTeardown===un&&(e.__hfRuntimeTeardown=null)}};e.__hfRuntimeTeardown=un,t.beforeUnloadHandler=un,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var uo=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],Jn=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Ja(t){if(t<=255)return uo[t];let e=0,n=Jn.length-1;for(;e<=n;){let i=e+n>>1,r=Jn[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function Qa(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let a=t.charCodeAt(l),f=a,m=1;if(a>=55296&&a<=56319&&l+1<e){let C=t.charCodeAt(l+1);C>=56320&&C<=57343&&(f=(a-55296<<10)+(C-56320)+65536,m=2)}let y=Ja(f);(y==="R"||y==="AL"||y==="AN")&&(i=!0);for(let C=0;C<m;C++)n[l+C]=y;l+=m}if(!i)return null;let r=0;for(let l=0;l<e;l++){let a=n[l];if(a==="L"){r=0;break}if(a==="R"||a==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,u=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=u:u=n[l];u=c;for(let l=0;l<e;l++){let a=n[l];a==="EN"?n[l]=u==="AL"?"AN":"EN":(a==="R"||a==="L"||a==="AL")&&(u=a)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<e;l++){if(n[l]!=="EN")continue;let a;for(a=l-1;a>=0&&n[a]==="ET";a--)n[a]="EN";for(a=l+1;a<e&&n[a]==="ET";a++)n[a]="EN"}for(let l=0;l<e;l++){let a=n[l];(a==="WS"||a==="ES"||a==="ET"||a==="CS")&&(n[l]="ON")}u=c;for(let l=0;l<e;l++){let a=n[l];a==="EN"?n[l]=u==="L"?"L":"EN":(a==="R"||a==="L")&&(u=a)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let a=l+1;for(;a<e&&n[a]==="ON";)a++;let f=l>0?n[l-1]:c,m=a<e?n[a]:c,y=f!=="L"?"R":"L";if(y===(m!=="L"?"R":"L"))for(let w=l;w<a;w++)n[w]=y;l=a-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let a=n[l];(o[l]&1)===0?a==="R"?o[l]++:(a==="AN"||a==="EN")&&(o[l]+=2):(a==="L"||a==="AN"||a==="EN")&&o[l]++}return o}function co(t,e){let n=Qa(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var Ya=/[ \t\n\r\f]+/g,Za=/[\t\n\r\f]| {2,}|^ | $/;function Xa(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function el(t){if(!Za.test(t))return t;let e=t.replace(Ya," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function tl(t){return/[\r\f]/.test(t)?t.replace(/\r\n/g,`
`).replace(/[\r\f]/g,`
`):t.replace(/\r\n/g,`
`)}var Qn=null,nl;function il(){return Qn===null&&(Qn=new Intl.Segmenter(nl,{granularity:"word"})),Qn}var rl=/\p{Script=Arabic}/u,tn=/\p{M}/u,So=/\p{Nd}/u;function fo(t){return rl.test(t)}function mo(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function Re(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(mo(r))return!0;e++;continue}}if(mo(n))return!0}}return!1}function ol(t){let e=on(t);return e!==null&&(rn.has(e)||Ge.has(e))}var sl=new Set(["\xA0","\u202F","\u2060","\uFEFF"]);function al(t){return Re(t)}function ll(t){let e=on(t);return e!==null&&sl.has(e)}function nn(t){return!ol(t)&&!ll(t)}var rn=new Set(["\uFF0C","\uFF0E","\uFF01","\uFF1A","\uFF1B","\uFF1F","\u3001","\u3002","\u30FB","\uFF09","\u3015","\u3009","\u300B","\u300D","\u300F","\u3011","\u3017","\u3019","\u301B","\u30FC","\u3005","\u303B","\u309D","\u309E","\u30FD","\u30FE"]),Dt=new Set(['"',"(","[","{","\u201C","\u2018","\xAB","\u2039","\uFF08","\u3014","\u3008","\u300A","\u300C","\u300E","\u3010","\u3016","\u3018","\u301A"]),Zn=new Set(["'","\u2019"]),Ge=new Set([".",",","!","?",":",";","\u060C","\u061B","\u061F","\u0964","\u0965","\u104A","\u104B","\u104C","\u104D","\u104F",")","]","}","%",'"',"\u201D","\u2019","\xBB","\u203A","\u2026"]),ul=new Set([":",".","\u060C","\u061B"]),cl=new Set(["\u104F"]),dl=new Set(["\u201D","\u2019","\xBB","\u203A","\u300D","\u300F","\u3011","\u300B","\u3009","\u3015","\uFF09"]);function fl(t){if(Xn(t))return!0;let e=!1;for(let n of t){if(Ge.has(n)){e=!0;continue}if(!(e&&tn.test(n)))return!1}return e}function ml(t){for(let e of t)if(!rn.has(e)&&!Ge.has(e))return!1;return t.length>0}function pl(t){if(Xn(t))return!0;for(let e of t)if(!Dt.has(e)&&!Zn.has(e)&&!tn.test(e))return!1;return t.length>0}function Xn(t){let e=!1;for(let n of t)if(!(n==="\\"||tn.test(n))){if(Dt.has(n)||Ge.has(n)||Zn.has(n)){e=!0;continue}return!1}return e}function Ao(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function on(t){if(t.length===0)return null;let e=Ao(t,t.length);return t.slice(e)}function hl(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(tn.test(i)){n--;continue}if(Dt.has(i)||Zn.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function xl(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\u2014"?t:null}function po(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function ho(t,e){return t&&e!==null&&ul.has(e)}function gl(t){let e=on(t);return e!==null&&cl.has(e)}function yl(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function sn(t){let e=t.length;for(;e>0;){let n=Ao(t,e),i=t.slice(n,e);if(dl.has(i))return!0;if(!Ge.has(i))return!1;e=n}return!1}function Sl(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`
`)return"hard-break"}return t===" "?"space":t==="\xA0"||t==="\u202F"||t==="\u2060"||t==="\uFEFF"?"glue":t==="\u200B"?"zero-width-break":t==="\xAD"?"soft-hyphen":"text"}var Al=/[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;function ke(t){return t.length===1?t[0]:t.join("")}function bl(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),ke(n)}function El(t,e,n,i){if(!Al.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,u=!1,l=0;for(let a of t){let f=Sl(a,i),m=f==="text"&&e;if(o!==null&&f===o&&m===u){s.push(a),l+=a.length;continue}o!==null&&r.push({text:ke(s),isWordLike:u,kind:o,start:c}),o=f,s=[a],c=n+l,u=m,l+=a.length}return o!==null&&r.push({text:ke(s),isWordLike:u,kind:o,start:c}),r}function Yn(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var Fl=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function wl(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:Fl.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Nl(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Cl(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!wl(t,s))continue;let c=[e[s]],u=s+1;for(;u<t.len&&!Yn(i[u]);){c.push(e[u]),n[s]=!0;let l=e[u].includes("?");if(i[u]="text",e[u]="",u++,l)break}e[s]=ke(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Ml(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Nl(s))continue;let c=o+1;if(c>=t.len||Yn(t.kinds[c]))continue;let u=[],l=t.starts[c],a=c;for(;a<t.len&&!Yn(t.kinds[a]);)u.push(t.texts[a]),a++;u.length>0&&(e.push(ke(u)),n.push(!0),i.push("text"),r.push(l),o=a-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Tl=new Set([":","-","/","\xD7",",",".","+","\u2013","\u2014"]),xo=/^[A-Za-z0-9_]+[,:;]*$/,go=/[,:;]+$/;function bo(t){for(let e of t)if(So.test(e))return!0;return!1}function Rt(t){if(t.length===0)return!1;for(let e of t)if(!(So.test(e)||Tl.has(e)))return!1;return!0}function kl(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&Rt(s)&&bo(s)){let u=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&Rt(t.texts[l]);)u.push(t.texts[l]),l++;e.push(ke(u)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function vl(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],u=t.isWordLike[o];if(c==="text"&&u&&xo.test(s)){let l=[s],a=go.test(s),f=o+1;for(;a&&f<t.len&&t.kinds[f]==="text"&&t.isWordLike[f]&&xo.test(t.texts[f]);){let m=t.texts[f];l.push(m),a=go.test(m),f++}e.push(ke(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=f-1;continue}e.push(s),n.push(u),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ll(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),u=c.length>1;for(let l=0;l<c.length;l++){let a=c[l];if(!u)break;(a.length===0||!bo(a)||!Rt(a))&&(u=!1)}if(u){let l=0;for(let a=0;a<c.length;a++){let f=c[a],m=a<c.length-1?`${f}-`:f;e.push(m),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=m.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function _l(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],u=t.kinds[o],l=t.starts[o];if(u==="glue"){let a=[s[0]],f=l;for(o++;o<t.len&&t.kinds[o]==="glue";)a.push(t.texts[o]),o++;let m=ke(a);if(o<t.len&&t.kinds[o]==="text")s[0]=m,s.push(t.texts[o]),c=t.isWordLike[o],u="text",l=f,o++;else{e.push(m),n.push(!1),i.push("glue"),r.push(f);continue}}else o++;if(u==="text")for(;o<t.len&&t.kinds[o]==="glue";){let a=[];for(;o<t.len&&t.kinds[o]==="glue";)a.push(t.texts[o]),o++;let f=ke(a);if(o<t.len&&t.kinds[o]==="text"){s.push(f,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(f)}e.push(ke(s)),n.push(c),i.push(u),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Rl(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Re(e[o])||!Re(e[o+1]))continue;let s=hl(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function yo(t,e,n){let i=il(),r=0,o=[],s=[],c=[],u=[],l=[],a=[],f=[],m=[],y=[],C=[],w=[],x=[];for(let F of i.segment(t))for(let g of El(F.segment,F.isWordLike??!1,F.index,n)){let ue=function(){a[_]!==null&&(s[_]=[po(o,a,f,_)],a[_]=null),s[_].push(g.text),c[_]=c[_]||g.isWordLike,m[_]=m[_]||N,y[_]=y[_]||k,C[_]=I,w[_]=Q,x[_]=ho(y[_],B)},A=g.kind==="text",E=xl(g.text,g.isWordLike,g.kind),N=Re(g.text),k=fo(g.text),B=on(g.text),I=sn(g.text),Q=gl(g.text),_=r-1;e.carryCJKAfterClosingQuote&&A&&r>0&&u[_]==="text"&&N&&m[_]&&C[_]||A&&r>0&&u[_]==="text"&&ml(g.text)&&m[_]||A&&r>0&&u[_]==="text"&&w[_]?ue():A&&r>0&&u[_]==="text"&&g.isWordLike&&k&&x[_]?(ue(),c[_]=!0):E!==null&&r>0&&u[_]==="text"&&a[_]===E?f[_]=(f[_]??1)+1:A&&!g.isWordLike&&r>0&&u[_]==="text"&&(fl(g.text)||g.text==="-"&&c[_])?ue():(o[r]=g.text,s[r]=[g.text],c[r]=g.isWordLike,u[r]=g.kind,l[r]=g.start,a[r]=E,f[r]=E===null?0:1,m[r]=N,y[r]=k,C[r]=I,w[r]=Q,x[r]=ho(k,B),r++)}for(let F=0;F<r;F++){if(a[F]!==null){o[F]=po(o,a,f,F);continue}o[F]=ke(s[F])}for(let F=1;F<r;F++)u[F]==="text"&&!c[F]&&Xn(o[F])&&u[F-1]==="text"&&(o[F-1]+=o[F],c[F-1]=c[F-1]||c[F],o[F]="");let R=Array.from({length:r},()=>null),T=-1;for(let F=r-1;F>=0;F--){let g=o[F];if(g.length!==0){if(u[F]==="text"&&!c[F]&&pl(g)&&T>=0&&u[T]==="text"){let A=R[T]??[];A.push(g),R[T]=A,l[T]=l[F],o[F]="";continue}T=F}}for(let F=0;F<r;F++){let g=R[F];g!=null&&(o[F]=bl(g,o[F]))}let M=0;for(let F=0;F<r;F++){let g=o[F];g.length!==0&&(M!==F&&(o[M]=g,c[M]=c[F],u[M]=u[F],l[M]=l[F]),M++)}o.length=M,c.length=M,u.length=M,l.length=M;let j=_l({len:M,texts:o,isWordLike:c,kinds:u,starts:l}),L=Rl(vl(Ll(kl(Ml(Cl(j))))));for(let F=0;F<L.len-1;F++){let g=yl(L.texts[F]);g!==null&&(L.kinds[F]!=="space"&&L.kinds[F]!=="preserved-space"||L.kinds[F+1]!=="text"||!fo(L.texts[F+1])||(L.texts[F]=g.space,L.isWordLike[F]=!1,L.kinds[F]=L.kinds[F]==="preserved-space"?"preserved-space":"space",L.texts[F+1]=g.marks+L.texts[F+1],L.starts[F+1]=L.starts[F]+g.space.length))}return L}function Dl(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function Bl(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,u=!1,l=!1;function a(){o!==null&&(e.push(ke(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let f=0;f<t.len;f++){let m=t.texts[f],y=t.kinds[f],C=t.isWordLike[f],w=t.starts[f];if(y==="text"){let x=al(m),R=nn(m);if(o!==null&&u&&l){o.push(m),s=s||C,u=u||x,l=R;continue}a(),o=[m],s=C,c=w,u=x,l=R;continue}a(),e.push(m),n.push(C),i.push(y),r.push(w)}return a(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Eo(t,e,n="normal",i="normal"){let r=Xa(n),o=r.mode==="pre-wrap"?tl(t):el(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?Bl(yo(o,e,r)):yo(o,e,r);return{normalized:o,chunks:Dl(s,r),...s}}var st=null,Fo=new Map,at=null,Ol=96,Pl=/\p{Emoji_Presentation}/u,Il=/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u,ei=null,wo=new Map;function ti(){if(st!==null)return st;if(typeof OffscreenCanvas<"u")return st=new OffscreenCanvas(1,1).getContext("2d"),st;if(typeof document<"u")return st=document.createElement("canvas").getContext("2d"),st;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Wl(t){let e=Fo.get(t);return e||(e=new Map,Fo.set(t,e)),e}function He(t,e){let n=e.get(t);return n===void 0&&(n={width:ti().measureText(t).width,containsCJK:Re(t)},e.set(t,n)),n}function lt(){if(at!==null)return at;if(typeof navigator>"u")return at={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},at;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return at={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},at}function Hl(t){let e=t.match(/(\d+(?:\.\d+)?)\s*px/);return e?parseFloat(e[1]):16}function No(){return ei===null&&(ei=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ei}function ql(t){return Pl.test(t)||t.includes("\uFE0F")}function Co(t){return Il.test(t)}function Ul(t,e){let n=wo.get(t);if(n!==void 0)return n;let i=ti();i.font=t;let r=i.measureText("\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return wo.set(t,n),n}function zl(t){let e=0,n=No();for(let i of n.segment(t))ql(i.segment)&&e++;return e}function jl(t,e){return e.emojiCount===void 0&&(e.emojiCount=zl(t)),e.emojiCount}function Ve(t,e,n){return n===0?e.width:e.width-jl(t,e)*n}function Mo(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=No(),s=[];for(let a of o.segment(t))s.push(a.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let a=[];for(let f of s){let m=He(f,n);a.push(Ve(f,m,i))}return e.breakableFitAdvances=a,e.breakableFitAdvances}if(r==="pair-context"||s.length>Ol){let a=[],f=null,m=0;for(let y of s){let C=He(y,n),w=Ve(y,C,i);if(f===null)a.push(w);else{let x=f+y,R=He(x,n);a.push(Ve(x,R,i)-m)}f=y,m=w}return e.breakableFitAdvances=a,e.breakableFitAdvances}let c=[],u="",l=0;for(let a of s){u+=a;let f=He(u,n),m=Ve(u,f,i);c.push(m-l),l=m}return e.breakableFitAdvances=c,e.breakableFitAdvances}function To(t,e){let n=ti();n.font=t;let i=Wl(t),r=Hl(t),o=e?Ul(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function Gl(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function Vl(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function $l(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function ko(t,e){return t.simpleLineWalkFastPath?vo(t,e):Lo(t,e)}function vo(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=lt().lineFitEpsilon,u=e+c,l=0,a=0,f=!1,m=0,y=0,C=0,w=0,x=-1,R=0;function T(){x=-1,R=0}function M(E=C,N=w,k=a){l++,n?.({startSegmentIndex:m,startGraphemeIndex:y,endSegmentIndex:E,endGraphemeIndex:N,width:k}),a=0,f=!1,T()}function j(E,N){f=!0,m=E,y=0,C=E+1,w=0,a=N}function L(E,N,k){f=!0,m=E,y=N,C=E,w=N+1,a=k}function F(E,N){if(!f){j(E,N);return}a+=N,C=E+1,w=0}function g(E,N){let k=o[E];for(let B=N;B<k.length;B++){let I=k[B];f?a+I>u?(M(),L(E,B,I)):(a+=I,C=E,w=B+1):L(E,B,I)}f&&C===E&&w===k.length&&(C=E+1,w=0)}let A=0;for(;A<i.length&&!(!f&&(A=Gl(t,A),A>=i.length));){let E=i[A],N=r[A],k=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!f){E>e&&o[A]!==null?g(A,0):j(A,E),k&&(x=A+1,R=a-E),A++;continue}if(a+E>u){if(k){F(A,E),M(A+1,0,a-E),A++;continue}if(x>=0){if(C>x||C===x&&w>0){M();continue}M(x,0,R);continue}if(E>e&&o[A]!==null){M(),g(A,0),A++;continue}M();continue}F(A,E),k&&(x=A+1,R=a-E),A++}return f&&M(),l}function Lo(t,e,n){if(t.simpleLineWalkFastPath)return vo(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:a}=t;if(i.length===0||a.length===0)return 0;let f=lt(),m=f.lineFitEpsilon,y=e+m,C=0,w=0,x=!1,R=0,T=0,M=0,j=0,L=-1,F=0,g=0,A=null;function E(){L=-1,F=0,g=0,A=null}function N($=M,V=j,W=w){C++,n?.({startSegmentIndex:R,startGraphemeIndex:T,endSegmentIndex:$,endGraphemeIndex:V,width:W}),w=0,x=!1,E()}function k($,V){x=!0,R=$,T=0,M=$+1,j=0,w=V}function B($,V,W){x=!0,R=$,T=V,M=$,j=V+1,w=W}function I($,V){if(!x){k($,V);return}w+=V,M=$+1,j=0}function Q($,V,W,X){if(!V)return;let xe=$==="tab"?0:r[W],Fe=$==="tab"?X:o[W];L=W+1,F=w-X+xe,g=w-X+Fe,A=$}function _($,V){let W=c[$];for(let X=V;X<W.length;X++){let xe=W[X];x?w+xe>y?(N(),B($,X,xe)):(w+=xe,M=$,j=X+1):B($,X,xe)}x&&M===$&&j===W.length&&(M=$+1,j=0)}function ue($){if(A!=="soft-hyphen")return!1;let V=c[$];if(V==null)return!1;let{fitCount:W,fittedWidth:X}=$l(V,w,e,m,u);return W===0?!1:(w=X,M=$,j=W,E(),W===V.length?(M=$+1,j=0,!0):(N($,W,X+u),_($,W),!0))}function he($){C++,n?.({startSegmentIndex:$.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:$.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),E()}for(let $=0;$<a.length;$++){let V=a[$];if(V.startSegmentIndex===V.endSegmentIndex){he(V);continue}x=!1,w=0,R=V.startSegmentIndex,T=0,M=V.startSegmentIndex,j=0,E();let W=V.startSegmentIndex;for(;W<V.endSegmentIndex;){let X=s[W],xe=X==="space"||X==="preserved-space"||X==="tab"||X==="zero-width-break"||X==="soft-hyphen",Fe=X==="tab"?Vl(w,l):i[W];if(X==="soft-hyphen"){x&&(M=W+1,j=0,L=W+1,F=w+u,g=w+u,A=X),W++;continue}if(!x){Fe>e&&c[W]!==null?_(W,0):k(W,Fe),Q(X,xe,W,Fe),W++;continue}if(w+Fe>y){let v=w+(X==="tab"?0:r[W]),P=w+(X==="tab"?Fe:o[W]);if(A==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&F<=y){N(L,0,g);continue}if(A==="soft-hyphen"&&ue(W)){W++;continue}if(xe&&v<=y){I(W,Fe),N(W+1,0,P),W++;continue}if(L>=0&&F<=y){if(M>L||M===L&&j>0){N();continue}let ne=L;N(ne,0,g),W=ne;continue}if(Fe>e&&c[W]!==null){N(),_(W,0),W++;continue}N();continue}I(W,Fe),Q(X,xe,W,Fe),W++}if(x){let X=L===V.consumedEndSegmentIndex?g:w;N(V.consumedEndSegmentIndex,0,X)}}return C}var ni=null;function Kl(){return ni===null&&(ni=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ni}function Jl(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Ql(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function u(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(f,m,y){i=[f],r=m,o=y,s=sn(f),c=Dt.has(f)}function a(f,m){i.push(f),o=o||m;let y=sn(f);f.length===1&&Ge.has(f)?s=s||y:s=y,c=!1}for(let f of Kl().segment(t)){let m=f.segment,y=Re(m);if(i.length===0){l(m,f.index,y);continue}if(c||rn.has(m)||Ge.has(m)||e.carryCJKAfterClosingQuote&&y&&s){a(m,y);continue}if(!o&&!y){a(m,y);continue}u(),l(m,f.index,y)}return u(),n}function Yl(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=Re(t[0].text),o=nn(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let u=t[c],l=Re(u.text),a=nn(u.text);if(r&&o){n.push(u.text),r=r||l,o=a;continue}s(),n=[u.text],i=u.start,r=l,o=a}return s(),e}function Zl(t,e,n,i){let r=lt(),{cache:o,emojiCorrection:s}=To(e,Co(t.normalized)),c=Ve("-",He("-",o),s),l=Ve(" ",He(" ",o),s)*8;if(t.len===0)return Jl(n);let a=[],f=[],m=[],y=[],C=t.chunks.length<=1,w=n?[]:null,x=[],R=n?[]:null,T=Array.from({length:t.len});function M(g,A,E,N,k,B,I){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(C=!1),a.push(A),f.push(E),m.push(N),y.push(k),w?.push(B),x.push(I),R!==null&&R.push(g)}function j(g,A,E,N,k){let B=He(g,o),I=Ve(g,B,s),Q=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:I,_=A==="space"||A==="zero-width-break"?0:I;if(k&&N&&g.length>1){let ue="sum-graphemes";Rt(g)?ue="pair-context":r.preferPrefixWidthsForBreakableRuns&&(ue="segment-prefixes");let he=Mo(g,B,o,s,ue);M(g,I,Q,_,A,E,he);return}M(g,I,Q,_,A,E,null)}for(let g=0;g<t.len;g++){T[g]=a.length;let A=t.texts[g],E=t.isWordLike[g],N=t.kinds[g],k=t.starts[g];if(N==="soft-hyphen"){M(A,0,c,c,N,k,null);continue}if(N==="hard-break"){M(A,0,0,0,N,k,null);continue}if(N==="tab"){M(A,0,0,0,N,k,null);continue}let B=He(A,o);if(N==="text"&&B.containsCJK){let I=Ql(A,r),Q=i==="keep-all"?Yl(I):I;for(let _=0;_<Q.length;_++){let ue=Q[_];j(ue.text,"text",k+ue.start,E,i==="keep-all"||!Re(ue.text))}continue}j(A,N,k,E,!0)}let L=Xl(t.chunks,T,a.length),F=w===null?null:co(t.normalized,w);return R!==null?{widths:a,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:y,simpleLineWalkFastPath:C,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:L,segments:R}:{widths:a,lineEndFitAdvances:f,lineEndPaintAdvances:m,kinds:y,simpleLineWalkFastPath:C,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:L}}function Xl(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,u=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:u})}return i}function eu(t,e,n,i){let r=i?.wordBreak??"normal",o=Eo(t,lt(),i?.whiteSpace,r);return Zl(o,e,n,r)}function _o(t,e,n){return eu(t,e,!1,n)}function Ro(t,e,n){let i=ko(t,e);return{lineCount:i,height:i*n}}var tu={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function Do(t,e){let n={...tu,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=_o(t,o),{lineCount:c}=Ro(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:Do,getVariables:to};function Bo(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,lo())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Bo,{once:!0}):Bo();})();