@pygmalionjs/pygmalion 0.6.4 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-emerald-300:oklch(84.5% .143 164.978);--color-sky-300:oklch(82.8% .111 230.318);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-800:oklch(26.9% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-\[-30px\]{top:-30px}.top-\[4px\]{top:4px}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-11{bottom:calc(var(--spacing) * 11)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-\[4px\]{left:4px}.left-\[9px\]{left:9px}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-\[2px\]{margin-top:2px}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\/5{height:40%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-24{height:calc(var(--spacing) * 24)}.h-\[3px\]{height:3px}.h-\[5px\]{height:5px}.h-\[9px\]{height:9px}.h-\[18px\]{height:18px}.h-\[20px\]{height:20px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[40px\]{height:40px}.h-\[180px\]{height:180px}.h-\[844px\]{height:844px}.h-\[calc\(100\%-1\.25rem\)\]{height:calc(100% - 1.25rem)}.h-full{height:100%}.h-px{height:1px}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[min\(720px\,calc\(100vh-72px\)\)\]{max-height:min(720px,100vh - 72px)}.min-h-0{min-height:0}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[180px\]{min-height:180px}.min-h-full{min-height:100%}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-\[3px\]{width:3px}.w-\[5px\]{width:5px}.w-\[9px\]{width:9px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[100px\]{width:100px}.w-\[320px\]{width:320px}.w-\[390px\]{width:390px}.w-\[560px\]{width:560px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-\[110px\]{max-width:110px}.max-w-\[196px\]{max-width:196px}.min-w-0{min-width:0}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-\[4rem\]{min-width:4rem}.min-w-\[20px\]{min-width:20px}.min-w-\[24px\]{min-width:24px}.min-w-\[26px\]{min-width:26px}.min-w-\[56px\]{min-width:56px}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[1fr_1fr_32px\]{grid-template-columns:1fr 1fr 32px}.grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.grid-cols-\[1fr_36px_36px\]{grid-template-columns:1fr 36px 36px}.grid-cols-\[18px_minmax\(0\,1fr\)_58px\]{grid-template-columns:18px minmax(0,1fr) 58px}.grid-cols-\[32px_minmax\(0\,1fr\)_32px\]{grid-template-columns:32px minmax(0,1fr) 32px}.grid-cols-\[56px_minmax\(0\,1fr\)_82px\]{grid-template-columns:56px minmax(0,1fr) 82px}.grid-cols-\[72px_minmax\(0\,1fr\)\]{grid-template-columns:72px minmax(0,1fr)}.grid-cols-\[88px_minmax\(0\,1fr\)\]{grid-template-columns:88px minmax(0,1fr)}.grid-cols-\[90px_minmax\(0\,1fr\)_58px\]{grid-template-columns:90px minmax(0,1fr) 58px}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(4\,32px\)_minmax\(0\,1fr\)\]{grid-template-columns:repeat(4,32px) minmax(0,1fr)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-\[12px\]{gap:12px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1{row-gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[13px\]{border-radius:13px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#7c3aed\]{border-color:#7c3aed}.border-\[\#9747ff\]{border-color:#9747ff}.border-\[\#a78bfa\]{border-color:#a78bfa}.border-\[\#bfdbfe\]{border-color:#bfdbfe}.border-\[\#c4b5fd\]{border-color:#c4b5fd}.border-\[\#cfe8d8\]{border-color:#cfe8d8}.border-\[\#d4d4d8\]{border-color:#d4d4d8}.border-\[\#d8ecff\]{border-color:#d8ecff}.border-\[\#d9d9d9\]{border-color:#d9d9d9}.border-\[\#d9ecfb\]{border-color:#d9ecfb}.border-\[\#dedee3\]{border-color:#dedee3}.border-\[\#e4e0ff\]{border-color:#e4e0ff}.border-\[\#e4e4e7\]{border-color:#e4e4e7}.border-\[\#e6e6e6\]{border-color:#e6e6e6}.border-\[\#e879f9\]{border-color:#e879f9}.border-\[\#ececec\]{border-color:#ececec}.border-\[\#f0f0f0\]{border-color:#f0f0f0}.border-\[\#f2d4a7\]{border-color:#f2d4a7}.border-\[\#fecaca\]{border-color:#fecaca}.border-\[\#fed7aa\]{border-color:#fed7aa}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.border-black\/5{border-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.border-black\/10{border-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.border-current{border-color:currentColor}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#6d28d9\]{background-color:#6d28d9}.bg-\[\#9747ff\]{background-color:#9747ff}.bg-\[\#18181b\]{background-color:#18181b}.bg-\[\#a1a1aa\]{background-color:#a1a1aa}.bg-\[\#c9c9c9\]{background-color:#c9c9c9}.bg-\[\#d4d4d8\]{background-color:#d4d4d8}.bg-\[\#dbeafe\]{background-color:#dbeafe}.bg-\[\#dcfce7\]{background-color:#dcfce7}.bg-\[\#e4e0ff\]{background-color:#e4e0ff}.bg-\[\#e5f4ff\]{background-color:#e5f4ff}.bg-\[\#e6e6e6\]{background-color:#e6e6e6}.bg-\[\#e6e9ec\]{background-color:#e6e9ec}.bg-\[\#e8f7ee\]{background-color:#e8f7ee}.bg-\[\#eceafd\]{background-color:#eceafd}.bg-\[\#ecfdf3\]{background-color:#ecfdf3}.bg-\[\#ede9fe\]{background-color:#ede9fe}.bg-\[\#eff6ff\]{background-color:#eff6ff}.bg-\[\#eff8ff\]{background-color:#eff8ff}.bg-\[\#f0f0f0\]{background-color:#f0f0f0}.bg-\[\#f2f2f2\]{background-color:#f2f2f2}.bg-\[\#f3e8ff\]{background-color:#f3e8ff}.bg-\[\#f4f4f5\]{background-color:#f4f4f5}.bg-\[\#f4faff\]{background-color:#f4faff}.bg-\[\#f4fbf6\]{background-color:#f4fbf6}.bg-\[\#f5f0ff\]{background-color:#f5f0ff}.bg-\[\#f5f3ff\]{background-color:#f5f3ff}.bg-\[\#f5f5f5\]{background-color:#f5f5f5}.bg-\[\#f7f7f8\]{background-color:#f7f7f8}.bg-\[\#f8f7ff\]{background-color:#f8f7ff}.bg-\[\#f8f8fa\]{background-color:#f8f8fa}.bg-\[\#f24822\]{background-color:#f24822}.bg-\[\#faf5ff\]{background-color:#faf5ff}.bg-\[\#fafafa\]{background-color:#fafafa}.bg-\[\#fdeaea\]{background-color:#fdeaea}.bg-\[\#fef2f2\]{background-color:#fef2f2}.bg-\[\#fef3c7\]{background-color:#fef3c7}.bg-\[\#ffedd5\]{background-color:#ffedd5}.bg-\[\#fff1f2\]{background-color:#fff1f2}.bg-\[\#fff2df\]{background-color:#fff2df}.bg-\[\#fff3dc\]{background-color:#fff3dc}.bg-\[\#fff7ed\]{background-color:#fff7ed}.bg-\[\#fff7f7\]{background-color:#fff7f7}.bg-\[\#fff8e8\]{background-color:#fff8e8}.bg-\[\#fff9ef\]{background-color:#fff9ef}.bg-\[\#ffffff\]{background-color:#fff}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-current{background-color:currentColor}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900\/70{background-color:#171717b3}@supports (color:color-mix(in lab,red,red)){.bg-neutral-900\/70{background-color:color-mix(in oklab,var(--color-neutral-900) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-\[16px\]{padding:16px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-\[1px\]{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[24px\]{font-size:24px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-\[\#0d99ff\]{color:#0d99ff}.text-\[\#1d4ed8\]{color:#1d4ed8}.text-\[\#4b30f3\]{color:#4b30f3}.text-\[\#5b21b6\]{color:#5b21b6}.text-\[\#6d28d9\]{color:#6d28d9}.text-\[\#007be5\]{color:#007be5}.text-\[\#7c3aed\]{color:#7c3aed}.text-\[\#8a5a00\]{color:#8a5a00}.text-\[\#9a5a00\]{color:#9a5a00}.text-\[\#9a3412\]{color:#9a3412}.text-\[\#237a42\]{color:#237a42}.text-\[\#333\]{color:#333}.text-\[\#444\]{color:#444}.text-\[\#555\]{color:#555}.text-\[\#666\]{color:#666}.text-\[\#777\]{color:#777}.text-\[\#888\]{color:#888}.text-\[\#999\]{color:#999}.text-\[\#1677b8\]{color:#1677b8}.text-\[\#7162d7\]{color:#7162d7}.text-\[\#9189bd\]{color:#9189bd}.text-\[\#9747ff\]{color:#9747ff}.text-\[\#15803d\]{color:#15803d}.text-\[\#16794b\]{color:#16794b}.text-\[\#18181b\]{color:#18181b}.text-\[\#27272a\]{color:#27272a}.text-\[\#52525b\]{color:#52525b}.text-\[\#64748b\]{color:#64748b}.text-\[\#71717a\]{color:#71717a}.text-\[\#111111\]{color:#111}.text-\[\#166534\]{color:#166534}.text-\[\#333333\]{color:#333}.text-\[\#a1a1aa\]{color:#a1a1aa}.text-\[\#a21caf\]{color:#a21caf}.text-\[\#aaa\]{color:#aaa}.text-\[\#b3b3b3\]{color:#b3b3b3}.text-\[\#b91c1c\]{color:#b91c1c}.text-\[\#b45309\]{color:#b45309}.text-\[\#c4c4c8\]{color:#c4c4c8}.text-\[\#c0392b\]{color:#c0392b}.text-\[\#c2410c\]{color:#c2410c}.text-\[\#d92d3a\]{color:#d92d3a}.text-\[\#e4e4e7\]{color:#e4e4e7}.text-\[\#f04452\]{color:#f04452}.text-amber-300{color:var(--color-amber-300)}.text-amber-600{color:var(--color-amber-600)}.text-emerald-300{color:var(--color-emerald-300)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-red-300{color:var(--color-red-300)}.text-sky-300{color:var(--color-sky-300)}.text-white{color:var(--color-white)}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-\[\#1677b8\]\/30{text-decoration-color:#1677b84d}.underline-offset-2{text-underline-offset:2px}.accent-\[\#0d99ff\]{accent-color:#0d99ff}.accent-\[\#4b30f3\]{accent-color:#4b30f3}.opacity-40{opacity:.4}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 1px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_1px_6px_rgba\(0\,0\,0\,\.12\)\]{--tw-shadow:0 1px 6px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\,0\,0\,\.15\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_14px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 2px 14px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_14px_rgba\(0\,0\,0\,\.12\)\]{--tw-shadow:0 2px 14px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_16px_rgba\(0\,0\,0\,\.14\)\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#00000024);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(0\,0\,0\,\.3\)\]{--tw-shadow:0 4px 20px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(0\,0\,0\,\.25\)\]{--tw-shadow:0 4px 20px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_40px_rgba\(0\,0\,0\,\.25\)\]{--tw-shadow:0 8px 40px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(15\,23\,42\,\.22\)\]{--tw-shadow:0 16px 48px var(--tw-shadow-color,#0f172a38);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_0_0_3px_rgba\(245\,158\,11\,\.85\)\]{--tw-shadow:inset 0 0 0 3px var(--tw-shadow-color,#f59e0bd9);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[\#dedee3\]{--tw-ring-color:#dedee3}.ring-\[\#e6e6e6\]{--tw-ring-color:#e6e6e6}.ring-\[\#ececec\]{--tw-ring-color:#ececec}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-\[\#0d99ff\]\/30{outline-color:#0d99ff4d}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}}.placeholder\:text-\[\#a1a1aa\]::placeholder{color:#a1a1aa}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}.focus-within\:ring-inset:focus-within{--tw-ring-inset:inset}@media(hover:hover){.hover\:border-\[\#a78bfa\]:hover{border-color:#a78bfa}.hover\:bg-\[\#0b87e0\]:hover{background-color:#0b87e0}.hover\:bg-\[\#0d99ff\]\/20:hover{background-color:#0d99ff33}.hover\:bg-\[\#5b21b6\]:hover{background-color:#5b21b6}.hover\:bg-\[\#e5f4ff\]:hover{background-color:#e5f4ff}.hover\:bg-\[\#e9e9ee\]:hover{background-color:#e9e9ee}.hover\:bg-\[\#ececec\]:hover{background-color:#ececec}.hover\:bg-\[\#eeebff\]:hover{background-color:#eeebff}.hover\:bg-\[\#f0f7ff\]:hover{background-color:#f0f7ff}.hover\:bg-\[\#f3e8ff\]:hover{background-color:#f3e8ff}.hover\:bg-\[\#f4f4f5\]:hover{background-color:#f4f4f5}.hover\:bg-\[\#f5f3ff\]:hover{background-color:#f5f3ff}.hover\:bg-\[\#f5f5f5\]:hover{background-color:#f5f5f5}.hover\:bg-\[\#f7f7f7\]:hover{background-color:#f7f7f7}.hover\:bg-\[\#f8fafc\]:hover{background-color:#f8fafc}.hover\:bg-\[\#faf8ff\]:hover{background-color:#faf8ff}.hover\:bg-\[\#fafafa\]:hover{background-color:#fafafa}.hover\:bg-\[\#fee2e2\]:hover{background-color:#fee2e2}.hover\:bg-\[\#fef2f2\]:hover{background-color:#fef2f2}.hover\:bg-\[\#ffe4e7\]:hover{background-color:#ffe4e7}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black:hover{background-color:var(--color-black)}.hover\:bg-neutral-600:hover{background-color:var(--color-neutral-600)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:text-\[\#333\]:hover{color:#333}.hover\:text-\[\#555\]:hover{color:#555}.hover\:text-\[\#18181b\]:hover{color:#18181b}.hover\:text-\[\#f04452\]:hover{color:#f04452}.hover\:ring-1:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-\[\#bbb6e4\]:hover{--tw-ring-color:#bbb6e4}.hover\:ring-\[\#e6e6e6\]:hover{--tw-ring-color:#e6e6e6}.hover\:ring-inset:hover{--tw-ring-inset:inset}}.focus\:border-\[\#9747ff\]:focus{border-color:#9747ff}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-inset:focus{--tw-ring-inset:inset}@media(hover:hover){.enabled\:hover\:bg-\[\#0d99ff\]:enabled:hover{background-color:#0d99ff}.hover\:enabled\:ring-1:hover:enabled{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:enabled\:ring-\[\#e6e6e6\]:hover:enabled{--tw-ring-color:#e6e6e6}.hover\:enabled\:ring-inset:hover:enabled{--tw-ring-inset:inset}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-\[\#e4e4e7\]:disabled{border-color:#e4e4e7}.disabled\:bg-\[\#c9c9c9\]:disabled{background-color:#c9c9c9}.disabled\:bg-\[\#d4d4d8\]:disabled{background-color:#d4d4d8}.disabled\:bg-\[\#e6e6e6\]:disabled{background-color:#e6e6e6}.disabled\:bg-\[\#f4f4f5\]:disabled{background-color:#f4f4f5}.disabled\:text-\[\#999\]:disabled{color:#999}.disabled\:text-\[\#a1a1aa\]:disabled{color:#a1a1aa}.disabled\:text-\[\#aaa\]:disabled{color:#aaa}.disabled\:text-\[\#c4c4c8\]:disabled{color:#c4c4c8}.disabled\:text-\[\#c9c9c9\]:disabled{color:#c9c9c9}.disabled\:text-white\/30:disabled{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.disabled\:text-white\/30:disabled{color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}@media(hover:hover){.disabled\:hover\:bg-\[\#fafafa\]:disabled:hover{background-color:#fafafa}.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}@media(min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}.pyg-root{-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Pretendard,Noto Sans KR,sans-serif}.pyg-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pyg-root input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pyg-root input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.pyg-root input[type=color]::-webkit-color-swatch-wrapper{padding:0}.pyg-root input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-emerald-300:oklch(84.5% .143 164.978);--color-sky-300:oklch(82.8% .111 230.318);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-800:oklch(26.9% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-\[-30px\]{top:-30px}.top-\[4px\]{top:4px}.right-0{right:0}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-11{bottom:calc(var(--spacing) * 11)}.bottom-\[-4px\]{bottom:-4px}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-\[4px\]{left:4px}.left-\[7px\]{left:7px}.left-\[9px\]{left:9px}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:var(--spacing)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-\[2px\]{margin-top:2px}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\/5{height:40%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-24{height:calc(var(--spacing) * 24)}.h-\[3px\]{height:3px}.h-\[5px\]{height:5px}.h-\[9px\]{height:9px}.h-\[18px\]{height:18px}.h-\[20px\]{height:20px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[40px\]{height:40px}.h-\[180px\]{height:180px}.h-\[844px\]{height:844px}.h-\[calc\(100\%-1\.25rem\)\]{height:calc(100% - 1.25rem)}.h-full{height:100%}.h-px{height:1px}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[224px\]{max-height:224px}.max-h-\[min\(720px\,calc\(100vh-72px\)\)\]{max-height:min(720px,100vh - 72px)}.min-h-0{min-height:0}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[180px\]{min-height:180px}.min-h-full{min-height:100%}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-\[3px\]{width:3px}.w-\[5px\]{width:5px}.w-\[9px\]{width:9px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[64px\]{width:64px}.w-\[100px\]{width:100px}.w-\[320px\]{width:320px}.w-\[390px\]{width:390px}.w-\[560px\]{width:560px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-\[110px\]{max-width:110px}.max-w-\[196px\]{max-width:196px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-\[4rem\]{min-width:4rem}.min-w-\[20px\]{min-width:20px}.min-w-\[24px\]{min-width:24px}.min-w-\[26px\]{min-width:26px}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[1fr_1fr_32px\]{grid-template-columns:1fr 1fr 32px}.grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.grid-cols-\[1fr_36px_36px\]{grid-template-columns:1fr 36px 36px}.grid-cols-\[18px_minmax\(0\,1fr\)_58px\]{grid-template-columns:18px minmax(0,1fr) 58px}.grid-cols-\[32px_minmax\(0\,1fr\)_32px\]{grid-template-columns:32px minmax(0,1fr) 32px}.grid-cols-\[56px_minmax\(0\,1fr\)_82px\]{grid-template-columns:56px minmax(0,1fr) 82px}.grid-cols-\[72px_minmax\(0\,1fr\)\]{grid-template-columns:72px minmax(0,1fr)}.grid-cols-\[88px_minmax\(0\,1fr\)\]{grid-template-columns:88px minmax(0,1fr)}.grid-cols-\[90px_minmax\(0\,1fr\)_58px\]{grid-template-columns:90px minmax(0,1fr) 58px}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(4\,32px\)_minmax\(0\,1fr\)\]{grid-template-columns:repeat(4,32px) minmax(0,1fr)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-\[12px\]{gap:12px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[13px\]{border-radius:13px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#7c3aed\]{border-color:#7c3aed}.border-\[\#3182f6\]{border-color:#3182f6}.border-\[\#9747ff\]{border-color:#9747ff}.border-\[\#a78bfa\]{border-color:#a78bfa}.border-\[\#b7d6ff\]{border-color:#b7d6ff}.border-\[\#b8d7ff\]{border-color:#b8d7ff}.border-\[\#bfdbfe\]{border-color:#bfdbfe}.border-\[\#c4b5fd\]{border-color:#c4b5fd}.border-\[\#cfe8d8\]{border-color:#cfe8d8}.border-\[\#d4d4d8\]{border-color:#d4d4d8}.border-\[\#d8ecff\]{border-color:#d8ecff}.border-\[\#d9d9d9\]{border-color:#d9d9d9}.border-\[\#d9ecfb\]{border-color:#d9ecfb}.border-\[\#dbe1e8\]{border-color:#dbe1e8}.border-\[\#dedee3\]{border-color:#dedee3}.border-\[\#e4e4e7\]{border-color:#e4e4e7}.border-\[\#e5e8eb\]{border-color:#e5e8eb}.border-\[\#e6e6e6\]{border-color:#e6e6e6}.border-\[\#e879f9\]{border-color:#e879f9}.border-\[\#ececec\]{border-color:#ececec}.border-\[\#edf0f2\]{border-color:#edf0f2}.border-\[\#f0f0f0\]{border-color:#f0f0f0}.border-\[\#f2d4a7\]{border-color:#f2d4a7}.border-\[\#f6d9a5\]{border-color:#f6d9a5}.border-\[\#fecaca\]{border-color:#fecaca}.border-\[\#fed7aa\]{border-color:#fed7aa}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.border-black\/5{border-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.border-black\/10{border-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.border-current{border-color:currentColor}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#6d28d9\]{background-color:#6d28d9}.bg-\[\#3182f6\]{background-color:#3182f6}.bg-\[\#9747ff\]{background-color:#9747ff}.bg-\[\#18181b\]{background-color:#18181b}.bg-\[\#a1a1aa\]{background-color:#a1a1aa}.bg-\[\#c9c9c9\]{background-color:#c9c9c9}.bg-\[\#d1d6db\]{background-color:#d1d6db}.bg-\[\#d4d4d8\]{background-color:#d4d4d8}.bg-\[\#dbe1e8\]{background-color:#dbe1e8}.bg-\[\#dbeafe\]{background-color:#dbeafe}.bg-\[\#dcfce7\]{background-color:#dcfce7}.bg-\[\#e5e8eb\]{background-color:#e5e8eb}.bg-\[\#e5f4ff\]{background-color:#e5f4ff}.bg-\[\#e6e6e6\]{background-color:#e6e6e6}.bg-\[\#e6e9ec\]{background-color:#e6e9ec}.bg-\[\#e8f3ff\]{background-color:#e8f3ff}.bg-\[\#eaf4ff\]{background-color:#eaf4ff}.bg-\[\#eceafd\]{background-color:#eceafd}.bg-\[\#ecfdf3\]{background-color:#ecfdf3}.bg-\[\#ede9fe\]{background-color:#ede9fe}.bg-\[\#eff6ff\]{background-color:#eff6ff}.bg-\[\#eff8ff\]{background-color:#eff8ff}.bg-\[\#f0f0f0\]{background-color:#f0f0f0}.bg-\[\#f1f7ff\]{background-color:#f1f7ff}.bg-\[\#f2f4f6\]{background-color:#f2f4f6}.bg-\[\#f2f7ff\]{background-color:#f2f7ff}.bg-\[\#f3e8ff\]{background-color:#f3e8ff}.bg-\[\#f4f4f5\]{background-color:#f4f4f5}.bg-\[\#f4faff\]{background-color:#f4faff}.bg-\[\#f4fbf6\]{background-color:#f4fbf6}.bg-\[\#f5f0ff\]{background-color:#f5f0ff}.bg-\[\#f5f3ff\]{background-color:#f5f3ff}.bg-\[\#f5f5f5\]{background-color:#f5f5f5}.bg-\[\#f7f7f8\]{background-color:#f7f7f8}.bg-\[\#f7f8fa\]{background-color:#f7f8fa}.bg-\[\#f8f8fa\]{background-color:#f8f8fa}.bg-\[\#f9fafb\]{background-color:#f9fafb}.bg-\[\#f24822\]{background-color:#f24822}.bg-\[\#faf5ff\]{background-color:#faf5ff}.bg-\[\#fafafa\]{background-color:#fafafa}.bg-\[\#fafbfc\]{background-color:#fafbfc}.bg-\[\#fdeaea\]{background-color:#fdeaea}.bg-\[\#fef2f2\]{background-color:#fef2f2}.bg-\[\#fef3c7\]{background-color:#fef3c7}.bg-\[\#ffedd5\]{background-color:#ffedd5}.bg-\[\#fff1d6\]{background-color:#fff1d6}.bg-\[\#fff1f2\]{background-color:#fff1f2}.bg-\[\#fff2df\]{background-color:#fff2df}.bg-\[\#fff7ed\]{background-color:#fff7ed}.bg-\[\#fff7f7\]{background-color:#fff7f7}.bg-\[\#fff8e8\]{background-color:#fff8e8}.bg-\[\#fff9ef\]{background-color:#fff9ef}.bg-\[\#fffaf1\]{background-color:#fffaf1}.bg-\[\#ffffff\]{background-color:#fff}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-current{background-color:currentColor}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-900\/70{background-color:#171717b3}@supports (color:color-mix(in lab,red,red)){.bg-neutral-900\/70{background-color:color-mix(in oklab,var(--color-neutral-900) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.fill-none{fill:none}.stroke-\[\#8b95a1\]{stroke:#8b95a1}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-\[16px\]{padding:16px}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-\[1px\]{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[24px\]{font-size:24px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-\[\#0d99ff\]{color:#0d99ff}.text-\[\#1b64da\]{color:#1b64da}.text-\[\#1d4ed8\]{color:#1d4ed8}.text-\[\#4b30f3\]{color:#4b30f3}.text-\[\#4e5968\]{color:#4e5968}.text-\[\#5b21b6\]{color:#5b21b6}.text-\[\#6b7684\]{color:#6b7684}.text-\[\#6d28d9\]{color:#6d28d9}.text-\[\#007be5\]{color:#007be5}.text-\[\#7c3aed\]{color:#7c3aed}.text-\[\#8a5a00\]{color:#8a5a00}.text-\[\#8b95a1\]{color:#8b95a1}.text-\[\#9a5a00\]{color:#9a5a00}.text-\[\#9a3412\]{color:#9a3412}.text-\[\#191f28\]{color:#191f28}.text-\[\#237a42\]{color:#237a42}.text-\[\#333\]{color:#333}.text-\[\#333d4b\]{color:#333d4b}.text-\[\#444\]{color:#444}.text-\[\#555\]{color:#555}.text-\[\#666\]{color:#666}.text-\[\#777\]{color:#777}.text-\[\#888\]{color:#888}.text-\[\#999\]{color:#999}.text-\[\#1677b8\]{color:#1677b8}.text-\[\#9747ff\]{color:#9747ff}.text-\[\#15803d\]{color:#15803d}.text-\[\#18181b\]{color:#18181b}.text-\[\#27272a\]{color:#27272a}.text-\[\#52525b\]{color:#52525b}.text-\[\#64748b\]{color:#64748b}.text-\[\#71717a\]{color:#71717a}.text-\[\#111111\]{color:#111}.text-\[\#166534\]{color:#166534}.text-\[\#333333\]{color:#333}.text-\[\#a1a1aa\]{color:#a1a1aa}.text-\[\#a21caf\]{color:#a21caf}.text-\[\#b3b3b3\]{color:#b3b3b3}.text-\[\#b91c1c\]{color:#b91c1c}.text-\[\#b45309\]{color:#b45309}.text-\[\#c4c4c8\]{color:#c4c4c8}.text-\[\#c0392b\]{color:#c0392b}.text-\[\#c2410c\]{color:#c2410c}.text-\[\#d92d3a\]{color:#d92d3a}.text-\[\#e4e4e7\]{color:#e4e4e7}.text-\[\#f04452\]{color:#f04452}.text-amber-300{color:var(--color-amber-300)}.text-amber-600{color:var(--color-amber-600)}.text-emerald-300{color:var(--color-emerald-300)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-red-300{color:var(--color-red-300)}.text-sky-300{color:var(--color-sky-300)}.text-white{color:var(--color-white)}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-\[\#1677b8\]\/30{text-decoration-color:#1677b84d}.underline-offset-2{text-underline-offset:2px}.accent-\[\#0d99ff\]{accent-color:#0d99ff}.accent-\[\#3182f6\]{accent-color:#3182f6}.opacity-40{opacity:.4}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_1px_4px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 1px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_1px_6px_rgba\(0\,0\,0\,\.12\)\]{--tw-shadow:0 1px 6px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_8px_rgba\(0\,0\,0\,\.15\)\]{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_12px_rgba\(79\,70\,229\,\.2\)\]{--tw-shadow:0 2px 12px var(--tw-shadow-color,#4f46e533);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_14px_rgba\(0\,0\,0\,\.08\)\]{--tw-shadow:0 2px 14px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_2px_14px_rgba\(0\,0\,0\,\.12\)\]{--tw-shadow:0 2px 14px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_16px_rgba\(0\,0\,0\,\.14\)\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#00000024);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(0\,0\,0\,\.3\)\]{--tw-shadow:0 4px 20px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(0\,0\,0\,\.25\)\]{--tw-shadow:0 4px 20px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_40px_rgba\(0\,0\,0\,\.25\)\]{--tw-shadow:0 8px 40px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(15\,23\,42\,\.22\)\]{--tw-shadow:0 16px 48px var(--tw-shadow-color,#0f172a38);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_0_0_3px_rgba\(245\,158\,11\,\.85\)\]{--tw-shadow:inset 0 0 0 3px var(--tw-shadow-color,#f59e0bd9);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[\#b7d6ff\]{--tw-ring-color:#b7d6ff}.ring-\[\#d8e9ff\]{--tw-ring-color:#d8e9ff}.ring-\[\#dedee3\]{--tw-ring-color:#dedee3}.ring-\[\#e5e8eb\]{--tw-ring-color:#e5e8eb}.ring-\[\#ececec\]{--tw-ring-color:#ececec}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\[\#0d99ff\]\/30{outline-color:#0d99ff4d}.outline-\[\#4f46e5\]{outline-color:#4f46e5}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}}.placeholder\:text-\[\#a1a1aa\]::placeholder{color:#a1a1aa}.placeholder\:text-\[\#b0b8c1\]::placeholder{color:#b0b8c1}.first\:mt-0:first-child{margin-top:0}.focus-within\:bg-white:focus-within{background-color:var(--color-white)}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}.focus-within\:ring-\[\#3182f6\]:focus-within{--tw-ring-color:#3182f6}.focus-within\:ring-inset:focus-within{--tw-ring-inset:inset}@media(hover:hover){.hover\:border-\[\#a78bfa\]:hover{border-color:#a78bfa}.hover\:border-\[\#e5e8eb\]:hover{border-color:#e5e8eb}.hover\:bg-\[\#0b87e0\]:hover{background-color:#0b87e0}.hover\:bg-\[\#0d99ff\]\/20:hover{background-color:#0d99ff33}.hover\:bg-\[\#1b64da\]:hover{background-color:#1b64da}.hover\:bg-\[\#5b21b6\]:hover{background-color:#5b21b6}.hover\:bg-\[\#dbeeff\]:hover{background-color:#dbeeff}.hover\:bg-\[\#e5e8eb\]:hover{background-color:#e5e8eb}.hover\:bg-\[\#e5f4ff\]:hover{background-color:#e5f4ff}.hover\:bg-\[\#e9e9ee\]:hover{background-color:#e9e9ee}.hover\:bg-\[\#eaf4ff\]:hover{background-color:#eaf4ff}.hover\:bg-\[\#ececec\]:hover{background-color:#ececec}.hover\:bg-\[\#f0f7ff\]:hover{background-color:#f0f7ff}.hover\:bg-\[\#f1f7ff\]:hover{background-color:#f1f7ff}.hover\:bg-\[\#f2f4f6\]:hover{background-color:#f2f4f6}.hover\:bg-\[\#f2f7ff\]:hover{background-color:#f2f7ff}.hover\:bg-\[\#f3e8ff\]:hover{background-color:#f3e8ff}.hover\:bg-\[\#f4f4f5\]:hover{background-color:#f4f4f5}.hover\:bg-\[\#f5f3ff\]:hover{background-color:#f5f3ff}.hover\:bg-\[\#f5f5f5\]:hover{background-color:#f5f5f5}.hover\:bg-\[\#f7f7f7\]:hover{background-color:#f7f7f7}.hover\:bg-\[\#f8fafc\]:hover{background-color:#f8fafc}.hover\:bg-\[\#f9fafb\]:hover{background-color:#f9fafb}.hover\:bg-\[\#faf8ff\]:hover{background-color:#faf8ff}.hover\:bg-\[\#fafafa\]:hover{background-color:#fafafa}.hover\:bg-\[\#fafbfc\]:hover{background-color:#fafbfc}.hover\:bg-\[\#fee2e2\]:hover{background-color:#fee2e2}.hover\:bg-\[\#fef2f2\]:hover{background-color:#fef2f2}.hover\:bg-\[\#ffe4e7\]:hover{background-color:#ffe4e7}.hover\:bg-\[\#fff4dc\]:hover{background-color:#fff4dc}.hover\:bg-amber-600:hover{background-color:var(--color-amber-600)}.hover\:bg-black:hover{background-color:var(--color-black)}.hover\:bg-neutral-600:hover{background-color:var(--color-neutral-600)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:text-\[\#1b64da\]:hover{color:#1b64da}.hover\:text-\[\#4e5968\]:hover{color:#4e5968}.hover\:text-\[\#333\]:hover{color:#333}.hover\:text-\[\#333d4b\]:hover{color:#333d4b}.hover\:text-\[\#555\]:hover{color:#555}.hover\:text-\[\#18181b\]:hover{color:#18181b}.hover\:text-\[\#f04452\]:hover{color:#f04452}.hover\:ring-1:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-\[\#b7d6ff\]:hover{--tw-ring-color:#b7d6ff}.hover\:ring-\[\#d8dce1\]:hover{--tw-ring-color:#d8dce1}.hover\:ring-\[\#e6e6e6\]:hover{--tw-ring-color:#e6e6e6}.hover\:ring-inset:hover{--tw-ring-inset:inset}}.focus\:border-\[\#90c2ff\]:focus{border-color:#90c2ff}.focus\:border-\[\#3182f6\]:focus{border-color:#3182f6}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-\[\#3182f6\]:focus{--tw-ring-color:#3182f6}.focus\:ring-\[\#e8f3ff\]:focus{--tw-ring-color:#e8f3ff}.focus\:ring-inset:focus{--tw-ring-inset:inset}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[\#90c2ff\]:focus-visible{--tw-ring-color:#90c2ff}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[\#3182f6\]:focus-visible{outline-color:#3182f6}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}@media(hover:hover){.enabled\:hover\:bg-\[\#0d99ff\]:enabled:hover{background-color:#0d99ff}.hover\:enabled\:ring-1:hover:enabled{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:enabled\:ring-\[\#e6e6e6\]:hover:enabled{--tw-ring-color:#e6e6e6}.hover\:enabled\:ring-inset:hover:enabled{--tw-ring-inset:inset}}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-\[\#e4e4e7\]:disabled{border-color:#e4e4e7}.disabled\:bg-\[\#c9c9c9\]:disabled{background-color:#c9c9c9}.disabled\:bg-\[\#d4d4d8\]:disabled{background-color:#d4d4d8}.disabled\:bg-\[\#e5e8eb\]:disabled{background-color:#e5e8eb}.disabled\:bg-\[\#e6e6e6\]:disabled{background-color:#e6e6e6}.disabled\:bg-\[\#f4f4f5\]:disabled{background-color:#f4f4f5}.disabled\:text-\[\#8b95a1\]:disabled{color:#8b95a1}.disabled\:text-\[\#999\]:disabled{color:#999}.disabled\:text-\[\#a1a1aa\]:disabled{color:#a1a1aa}.disabled\:text-\[\#aaa\]:disabled{color:#aaa}.disabled\:text-\[\#c4c4c8\]:disabled{color:#c4c4c8}.disabled\:text-\[\#c9c9c9\]:disabled{color:#c9c9c9}.disabled\:text-white\/30:disabled{color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.disabled\:text-white\/30:disabled{color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}@media(hover:hover){.disabled\:hover\:bg-\[\#fafafa\]:disabled:hover{background-color:#fafafa}.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}@media(min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}}.pyg-root{-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Pretendard,Noto Sans KR,sans-serif}.pyg-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pyg-root input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pyg-root input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.pyg-root input[type=color]::-webkit-color-swatch-wrapper{padding:0}.pyg-root input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -1,4 +1,4 @@
1
- import { F as s, N as a, e as r, s as i, a as t } from "./FrozenRoutePreview-V9-gxIyv.js";
1
+ import { F as s, N as a, e as r, s as i, a as t } from "./FrozenRoutePreview-CBsH9Pei.js";
2
2
  export {
3
3
  s as FrozenRoutePreviewView,
4
4
  a as NodeModel,
@@ -1,9 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { FrameLodFrame } from '../editor/frameLod';
3
+ export declare function resolveCameraPointerEvents(editMode: boolean, tool: string, interactionActive: boolean): 'none' | undefined;
3
4
  /** Diagnostic passthrough for headless debugging of the LOD frame inputs. */
4
5
  export declare function __debugReadEditorFrames(): (FrameLodFrame & {
5
6
  memoKey?: string;
6
7
  })[];
7
- export declare function CameraLayer({ children }: {
8
+ export declare function CameraLayer({ children, interactionFrameId, }: {
8
9
  children?: ReactNode;
10
+ interactionFrameId?: string | null;
9
11
  }): import("react").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { type FrameInteractionPhase } from '../editor/frameInteraction';
1
2
  import { type PageModel } from '../editor/store';
2
3
  export declare const FrameView: import("react").FunctionComponent<{
3
4
  page: PageModel;
@@ -6,4 +7,5 @@ export declare const FrameView: import("react").FunctionComponent<{
6
7
  backgroundOnly?: boolean;
7
8
  cacheHydrated: boolean;
8
9
  previewIdentityReady: boolean;
10
+ interactionPhase?: FrameInteractionPhase;
9
11
  }>;
@@ -27,7 +27,9 @@ export type DesignScreenInteractionAction = 'click' | 'focus'
27
27
  /** Holds keyboard focus, including the `:focus-visible` presentation. */
28
28
  | 'focus-visible'
29
29
  /** Holds the pointer-down `:active` presentation through capture. */
30
- | 'active' | 'fill' | 'check' | 'press' | 'wait' | 'storage';
30
+ | 'active' | 'fill' | 'check' | 'press'
31
+ /** Restores an absolute document or container scroll position. */
32
+ | 'scroll' | 'wait' | 'storage';
31
33
  /**
32
34
  * A critical step to capture the actual app screen after putting it in a specific user flow state.
33
35
  * A CSS selector is used first, and if text is present, the selector candidates are narrowed down to the display string.
@@ -43,6 +45,10 @@ export interface DesignScreenInteraction {
43
45
  waitState?: 'visible' | 'attached';
44
46
  value?: string;
45
47
  key?: string;
48
+ /** Absolute horizontal position for a scroll step. The current axis is kept when omitted. */
49
+ scrollX?: number;
50
+ /** Absolute vertical position for a scroll step. The current axis is kept when omitted. */
51
+ scrollY?: number;
46
52
  storage?: 'local' | 'session';
47
53
  timeoutMs?: number;
48
54
  settleMs?: number;
@@ -0,0 +1,66 @@
1
+ export type FrameInteractionPhase = 'idle' | 'starting' | 'interacting';
2
+ export interface FrameInteractionScrollState {
3
+ x: number;
4
+ y: number;
5
+ maxX: number;
6
+ maxY: number;
7
+ viewportWidth: number;
8
+ viewportHeight: number;
9
+ contentWidth: number;
10
+ contentHeight: number;
11
+ }
12
+ export interface FrameInteractionSnapshot {
13
+ frameId: string | null;
14
+ phase: FrameInteractionPhase;
15
+ scroll: FrameInteractionScrollState | null;
16
+ }
17
+ export interface FrameInteractionViewportAdapter {
18
+ readScroll(): FrameInteractionScrollState;
19
+ scrollTo(position: {
20
+ x: number;
21
+ y: number;
22
+ }): void;
23
+ focus?(): void;
24
+ subscribe?(listener: () => void): () => void;
25
+ }
26
+ export interface FrameInteractionEntryContext {
27
+ editMode: boolean;
28
+ tool: string;
29
+ hasRoute: boolean;
30
+ liveOriginReady: boolean;
31
+ backgroundOnly?: boolean;
32
+ }
33
+ /** Only a readable, code-backed screen with a runnable origin enters live input. */
34
+ export declare function canBeginFrameInteraction({ editMode, tool, hasRoute, liveOriginReady, backgroundOnly, }: FrameInteractionEntryContext): boolean;
35
+ /** Keeps canvas tools authoritative except during selection or live input. */
36
+ export declare function canvasFramePointerEventsEnabled(editMode: boolean, tool: string, interactionActive: boolean): boolean;
37
+ /** Starts a transient live-input session for one code-backed frame. */
38
+ export declare function beginFrameInteraction(frameId: string): void;
39
+ /** Ends the current session. A frame id prevents stale cleanups from ending a newer one. */
40
+ export declare function exitFrameInteraction(frameId?: string): boolean;
41
+ /**
42
+ * Keeps interaction scoped to the selected frame and to view-only/select mode.
43
+ * Returns true when a session was closed.
44
+ */
45
+ export declare function reconcileFrameInteractionScope(activeFrameId: string | null, enabled: boolean): boolean;
46
+ export declare function getFrameInteractionSnapshot(): FrameInteractionSnapshot;
47
+ export declare function subscribeFrameInteraction(listener: () => void): () => void;
48
+ /**
49
+ * Connects the running preview viewport once its declared screen state arrives.
50
+ * The bridge is deliberately imperative: a side panel can read and set scroll
51
+ * without learning whether the running surface is an iframe or another host.
52
+ */
53
+ export declare function connectFrameInteractionViewport(frameId: string, adapter: FrameInteractionViewportAdapter): () => void;
54
+ /** Scrolls the running frame viewport and immediately republishes its reading. */
55
+ export declare function setFrameInteractionScroll(position: {
56
+ x?: number;
57
+ y?: number;
58
+ }): boolean;
59
+ /** Hash and query changes stay in the same screen; another path leaves it. */
60
+ export declare function frameInteractionNavigationStaysInFrame(baselineHref: string, nextHref: string): boolean;
61
+ /** Blocks document navigation while leaving ordinary in-screen events intact. */
62
+ export declare function installFrameInteractionNavigationGuard(view: Window, document: Document): () => void;
63
+ /** Connects a same-origin live iframe, including Escape and nested scroll tracking. */
64
+ export declare function connectFrameInteractionIframe(frameId: string, iframe: HTMLIFrameElement): () => void;
65
+ /** Test seam for independent runtime cases. */
66
+ export declare function resetFrameInteraction(): void;
@@ -0,0 +1,40 @@
1
+ export declare const ACTIVE_FRAME_SCROLL_SURFACE_SELECTOR = "[data-pygmalion-frame-scroll-surface=\"true\"]";
2
+ export type FrameScrollSource = 'frame' | 'frame-element' | 'embedded-document' | 'embedded-element';
3
+ export interface FrameScrollTargetOption {
4
+ id: string;
5
+ label: string;
6
+ source: FrameScrollSource;
7
+ /** Omitted only for the application document's root viewport. */
8
+ selector: string | null;
9
+ }
10
+ export interface FrameScrollMetrics {
11
+ available: boolean;
12
+ source: FrameScrollSource | null;
13
+ targetId: string | null;
14
+ targetLabel: string | null;
15
+ selector: string | null;
16
+ targets: readonly FrameScrollTargetOption[];
17
+ left: number;
18
+ top: number;
19
+ maxLeft: number;
20
+ maxTop: number;
21
+ clientWidth: number;
22
+ clientHeight: number;
23
+ scrollWidth: number;
24
+ scrollHeight: number;
25
+ }
26
+ export declare const EMPTY_FRAME_SCROLL_METRICS: Readonly<FrameScrollMetrics>;
27
+ export interface ResolvedFrameScrollTarget extends FrameScrollTargetOption {
28
+ element: Element;
29
+ }
30
+ /** Resolves a chosen viewport, or the mounted surface with the most overflow. */
31
+ export declare function resolveActiveFrameScrollTarget(document: Document, targetId?: string): ResolvedFrameScrollTarget | null;
32
+ export declare function readActiveFrameScrollMetrics(document: Document, targetId?: string): FrameScrollMetrics;
33
+ export declare function frameScrollMetricsEqual(left: Readonly<FrameScrollMetrics>, right: Readonly<FrameScrollMetrics>): boolean;
34
+ /** Moves one mounted scroll surface immediately and returns its resulting metrics. */
35
+ export declare function scrollActiveFrameTo(document: Document, position: {
36
+ left?: number;
37
+ top?: number;
38
+ }, targetId?: string): FrameScrollMetrics;
39
+ /** Observes the selected root or nested scroll surface across live remounts. */
40
+ export declare function observeActiveFrameScroll(document: Document, onChange: (metrics: FrameScrollMetrics) => void, targetId?: string): () => void;
@@ -188,11 +188,27 @@ export interface PreviewFramePage {
188
188
  * this package transports the host's recipe, it does not read it.
189
189
  */
190
190
  export interface RoutePreviewFrameRecipe {
191
+ route?: string;
192
+ width?: number;
193
+ height?: number;
191
194
  environment?: StoryboardEnvironment;
195
+ preset?: unknown;
192
196
  interactions?: unknown;
197
+ assertions?: unknown;
193
198
  }
194
199
  /** The recipe behind createRoutePreviewFrameFingerprint, for the same page. */
195
- export declare function routePreviewFrameRecipe(page: PreviewFramePage, baselineEnvironment?: StoryboardEnvironment): RoutePreviewFrameRecipe | undefined;
200
+ export declare function routePreviewFrameRecipe(page: PreviewFramePage, baselineEnvironment?: StoryboardEnvironment): RoutePreviewFrameRecipe;
201
+ /**
202
+ * Resolves the page identity a returned frame must seed.
203
+ *
204
+ * The catalog page is only the authored starting point. A selected frame may
205
+ * request another viewport or interaction recipe; storing that response under
206
+ * the authored key reports the request as exact while the canvas keeps waiting
207
+ * on a different key. The request is authoritative for every field it carries.
208
+ */
209
+ export declare function resolveRoutePreviewFrameRequestPage(request: PreviewArtifactFrameRequest, authored?: PreviewFramePage): (PreviewFramePage & {
210
+ fingerprint?: string;
211
+ }) | null;
196
212
  /**
197
213
  * Identity of one frame's capture, derived the same way wherever it is needed.
198
214
  *
@@ -41,6 +41,8 @@ export interface ShadowPreviewHandle {
41
41
  readonly heldPseudoIssues: readonly string[];
42
42
  /** Rebuilds held pseudo rules from external stylesheets after their links load. */
43
43
  refreshLinkedHeldPseudoCss(): void;
44
+ /** Reapplies deterministic scroll endpoints after frozen layout settles. */
45
+ restoreScrollInteractions(): readonly string[];
44
46
  updateMotion(state: ShadowPreviewMotionState): void;
45
47
  readMotionProgress(): number | null;
46
48
  updateBodyHtml(bodyHtml: string, baseUrl?: string): void;
@@ -201,6 +201,15 @@ export interface PageModel {
201
201
  interactions?: DesignScreenInteraction[];
202
202
  /** Captured recipe, kept while a declared interactive state extends it. */
203
203
  baseInteractions?: DesignScreenInteraction[];
204
+ /** View-only scroll endpoint currently held on this frame's preview recipe. */
205
+ previewScroll?: {
206
+ x: number;
207
+ y: number;
208
+ selector?: string;
209
+ targetLabel?: string;
210
+ };
211
+ /** Object identity used to replace or release only the editor-owned scroll step. */
212
+ previewScrollInteraction?: DesignScreenInteraction;
204
213
  /** Declared interactive axis the frame is currently held in, if any. */
205
214
  interactiveStateId?: string;
206
215
  interactiveOptionId?: string;
@@ -667,6 +676,24 @@ export declare class EditorStore {
667
676
  * path. Returning to the base option restores the captured recipe.
668
677
  */
669
678
  applyInteractiveState(pageId: string, def: InteractiveStateDef, optionId: string): boolean;
679
+ /** The root viewport endpoint currently preserved in this frame recipe. */
680
+ frameScrollRecipe(pageId: string): Readonly<{
681
+ x: number;
682
+ y: number;
683
+ selector?: string;
684
+ targetLabel?: string;
685
+ }> | null;
686
+ /**
687
+ * Holds or releases the mounted root viewport as a deterministic recipe step.
688
+ * This is preview state: it re-supplies the frame but never becomes a source
689
+ * edit or an Apply payload.
690
+ */
691
+ setFrameScrollRecipe(pageId: string, position: {
692
+ x: number;
693
+ y: number;
694
+ selector?: string;
695
+ targetLabel?: string;
696
+ } | null): boolean;
670
697
  previewMotionState(pageId: string): Readonly<PreviewMotionState>;
671
698
  playPreviewMotion(pageId: string, targetId?: string): void;
672
699
  pausePreviewMotion(pageId: string, targetId?: string): void;
@@ -1,5 +1,6 @@
1
1
  import type { DesignImportAsset, DesignScenarioSource, DesignScreenCase } from './designImport';
2
2
  export type StoryboardGraphEdgeOrigin = 'explicit' | 'inferred';
3
+ export type StoryboardGraphEdgeLabelScope = 'edge' | 'path';
3
4
  export interface StoryboardGraphEdgeInput {
4
5
  id?: string;
5
6
  from: string;
@@ -10,6 +11,8 @@ export interface StoryboardGraphEdgeInput {
10
11
  toScope?: readonly string[];
11
12
  kind?: string;
12
13
  label?: string;
14
+ /** Whether a label describes this edge action or names its containing path. */
15
+ labelScope?: StoryboardGraphEdgeLabelScope;
13
16
  }
14
17
  export interface StoryboardPathInput {
15
18
  /** Stable author-owned identity used as the edge id prefix. */
@@ -23,6 +26,8 @@ export interface StoryboardDefinition {
23
26
  paths?: readonly StoryboardPathInput[];
24
27
  edges?: readonly StoryboardGraphEdgeInput[];
25
28
  startScreenIds?: readonly string[];
29
+ /** Screens whose lack of an outgoing transition is intentional. */
30
+ endScreenIds?: readonly string[];
26
31
  nonVisualScenarioIds?: readonly string[];
27
32
  }
28
33
  /** Expands readable authored paths into deterministic adjacent graph edges. */
@@ -34,6 +39,8 @@ export interface StoryboardGraphBuildOptions {
34
39
  explicitEdges?: readonly StoryboardGraphEdgeInput[];
35
40
  inferredEdges?: readonly StoryboardGraphEdgeInput[];
36
41
  startScreenIds?: readonly string[];
42
+ /** Screens whose lack of an outgoing transition is intentional. */
43
+ endScreenIds?: readonly string[];
37
44
  nonVisualScenarioIds?: readonly string[];
38
45
  recipeKey?: (screen: DesignScreenCase) => string;
39
46
  }
@@ -59,6 +66,7 @@ export interface StoryboardGraphEdge {
59
66
  toNodeIds?: readonly string[];
60
67
  kind?: string;
61
68
  label?: string;
69
+ labelScope?: StoryboardGraphEdgeLabelScope;
62
70
  origin: StoryboardGraphEdgeOrigin;
63
71
  sourceEdgeIds: readonly string[];
64
72
  }
@@ -73,7 +81,7 @@ export interface StoryboardGraphBranch {
73
81
  edgeIds: readonly string[];
74
82
  targetNodeIds: readonly string[];
75
83
  }
76
- export type StoryboardGraphWarningCode = 'duplicate-screen-id' | 'invalid-recipe' | 'unknown-edge-source' | 'unknown-edge-target' | 'ambiguous-edge-source' | 'ambiguous-edge-target' | 'unknown-start-screen' | 'disconnected-screen' | 'missing-code-scenario';
84
+ export type StoryboardGraphWarningCode = 'duplicate-screen-id' | 'invalid-recipe' | 'unknown-edge-source' | 'unknown-edge-target' | 'ambiguous-edge-source' | 'ambiguous-edge-target' | 'unknown-start-screen' | 'unknown-end-screen' | 'end-screen-has-outgoing' | 'disconnected-screen' | 'missing-code-scenario';
77
85
  export interface StoryboardGraphWarning {
78
86
  code: StoryboardGraphWarningCode;
79
87
  severity: 'warning' | 'error';
@@ -90,8 +98,12 @@ export interface StoryboardGraphCoverage {
90
98
  edges: number;
91
99
  connectedNodes: number;
92
100
  disconnectedScreens: readonly string[];
101
+ /** Connected leaf screens that have not been declared as intentional ends. */
102
+ undeclaredEndScreens?: readonly string[];
93
103
  codeScenarios: number;
94
104
  representedScenarios: number;
105
+ /** Code scenarios intentionally covered without a visual screen. */
106
+ nonVisualScenarios?: number;
95
107
  missingScenarios: readonly string[];
96
108
  complete: boolean;
97
109
  }
@@ -102,6 +114,10 @@ export interface StoryboardGraph {
102
114
  aliases: Readonly<Record<string, string>>;
103
115
  sourceGroups: readonly StoryboardGraphSourceGroup[];
104
116
  startNodeIds: readonly string[];
117
+ /** Whether the host opted into validating intentional journey ends. */
118
+ endDeclarationsEnabled?: boolean;
119
+ /** Canonical nodes explicitly declared as intentional journey ends. */
120
+ endNodeIds?: readonly string[];
105
121
  branches: readonly StoryboardGraphBranch[];
106
122
  warnings: readonly StoryboardGraphWarning[];
107
123
  coverage: StoryboardGraphCoverage;
@@ -13,9 +13,13 @@ export interface StoryboardGraphFrameView {
13
13
  canonicalFrameId?: string;
14
14
  isCanonical: boolean;
15
15
  isStart: boolean;
16
+ /** True when the host declared this recipe as an intentional journey end. */
17
+ isEnd?: boolean;
16
18
  isBranch: boolean;
17
19
  routes: readonly string[];
18
20
  flows: readonly string[];
21
+ /** Code scenarios represented by this preserved screen recipe. */
22
+ scenarioIds?: readonly string[];
19
23
  states: readonly string[];
20
24
  /** Shortest directed distance from an authored storyboard start. */
21
25
  depth?: number;
@@ -31,6 +35,7 @@ export interface StoryboardGraphTransitionView {
31
35
  sourceFrameId: string;
32
36
  targetFrameId: string;
33
37
  label?: string;
38
+ labelScope?: StoryboardGraph['edges'][number]['labelScope'];
34
39
  kind?: string;
35
40
  origin: StoryboardGraphEdgeOrigin;
36
41
  }
@@ -67,6 +72,8 @@ export interface StoryboardGraphViewModel {
67
72
  sharedSources: readonly StoryboardGraphSourceView[];
68
73
  startFrameIds: readonly string[];
69
74
  branchFrameIds: readonly string[];
75
+ /** Whether leaves are checked against explicit intentional ends. */
76
+ endDeclarationsEnabled?: boolean;
70
77
  warnings: readonly StoryboardGraphWarning[];
71
78
  unresolvedWarnings: readonly StoryboardGraphWarning[];
72
79
  coverage: StoryboardGraph['coverage'];
@@ -35,3 +35,7 @@ export declare function storyboardJourney(model: StoryboardGraphViewModel): Stor
35
35
  export declare function journeyAnchorFor(journey: StoryboardJourney, frameId: string | null | undefined): string | null;
36
36
  /** Frames that end the walk — nothing declared follows them. */
37
37
  export declare function journeyDeadEnds(model: StoryboardGraphViewModel): readonly StoryboardGraphFrameView[];
38
+ /** Intentional leaf frames declared through StoryboardDefinition.endScreenIds. */
39
+ export declare function journeyEndPoints(model: StoryboardGraphViewModel): readonly StoryboardGraphFrameView[];
40
+ /** Leaf frames that still need either a next transition or an end declaration. */
41
+ export declare function journeyUndeclaredEnds(model: StoryboardGraphViewModel): readonly StoryboardGraphFrameView[];
@@ -22,6 +22,8 @@ import { type PreviewEnvironmentControlDef } from './editor/previewEnvironmentCo
22
22
  export { setComponentRegistry } from './editor/registry';
23
23
  export { PYGMALION_PREVIEW_CAPTURE_PROGRESS_SUFFIX, previewCaptureProgressEndpoint, usePygmalionPreviewCaptureProgress, } from './editor/previewCaptureProgress';
24
24
  export type { PygmalionPreviewCaptureProgress, PygmalionPreviewCaptureProgressPhase, } from './editor/previewCaptureProgress';
25
+ export { beginFrameInteraction, exitFrameInteraction, getFrameInteractionSnapshot, setFrameInteractionScroll, subscribeFrameInteraction, } from './editor/frameInteraction';
26
+ export type { FrameInteractionPhase, FrameInteractionScrollState, FrameInteractionSnapshot, } from './editor/frameInteraction';
25
27
  export type { ComponentRegistry, RegistryEntry, RegistryPropValue, } from './editor/registry';
26
28
  export { enumerateDesignComponentConnectionCases, getDesignComponentConnection, getDesignComponentConnectionForComponent, getDesignComponentConnections, setDesignComponentConnections, validateDesignComponentConnections, } from './editor/componentConnections';
27
29
  export type { DesignComponentConnectionCase, DesignComponentConnectionCases, DesignComponentConnectionDef, DesignComponentReference, DesignConnectionDiagnostic, DesignConnectionPropertyDef, DesignConnectionPropertyKind, } from './editor/componentConnections';
@@ -64,7 +66,7 @@ export type { NodeSelector } from './editor/nodeSelector';
64
66
  export { validateScreenDimensions } from './editor/screenDimensions';
65
67
  export type { ComponentBranch, ScreenDimensionDef, ScreenDimensionDiagnostic, ScreenDimensionOption, } from './editor/screenDimensions';
66
68
  export { createStoryboardPathEdges, createStoryboardGraph, storyboardScreenRecipeKey, } from './editor/storyboardGraph';
67
- export type { StoryboardDefinition, StoryboardGraph, StoryboardGraphBranch, StoryboardGraphBuildOptions, StoryboardGraphCoverage, StoryboardGraphEdge, StoryboardGraphEdgeInput, StoryboardGraphEdgeOrigin, StoryboardGraphNode, StoryboardGraphSourceGroup, StoryboardGraphWarning, StoryboardGraphWarningCode, StoryboardPathInput, } from './editor/storyboardGraph';
69
+ export type { StoryboardDefinition, StoryboardGraph, StoryboardGraphBranch, StoryboardGraphBuildOptions, StoryboardGraphCoverage, StoryboardGraphEdge, StoryboardGraphEdgeInput, StoryboardGraphEdgeLabelScope, StoryboardGraphEdgeOrigin, StoryboardGraphNode, StoryboardGraphSourceGroup, StoryboardGraphWarning, StoryboardGraphWarningCode, StoryboardPathInput, } from './editor/storyboardGraph';
68
70
  export { createStoryboardRouteScenarioId, createStoryboardGraphFromDiscovery, getStoryboardDiscoveryBaselineEnvironment, loadStoryboardDiscovery, publishStoryboardDiscovery, resolveStoryboardScreenCases, } from './editor/storyboardDiscovery';
69
71
  export type { LoadStoryboardDiscoveryOptions, StoryboardDiscoveryCandidate, StoryboardDiscoveryEdge, StoryboardDiscoveryFetch, StoryboardDiscoveryGraphOptions, StoryboardDiscoveryManifest, StoryboardDiscoveryResponse, StoryboardDiscoveryResult, StoryboardDiscoveryRoute, StoryboardDiscoveryScenario, StoryboardResolvedPage, } from './editor/storyboardDiscovery';
70
72
  export { getStoryboardGraph, setStoryboardGraph, subscribeStoryboardGraph, } from './editor/storyboardGraphRuntime';
@@ -3,8 +3,9 @@ import { sourceWritableRegistryProps } from '../editor/componentInstances';
3
3
  import type { RegistryEntry, RegistryPropValue } from '../editor/registry';
4
4
  import { type NodeModel, type PageModel } from '../editor/store';
5
5
  /** Property-panel section frame shared across the shell panels. */
6
- export declare function Sec({ title, action, children, }: {
6
+ export declare function Sec({ title, description, action, children, }: {
7
7
  title: string;
8
+ description?: ReactNode;
8
9
  action?: ReactNode;
9
10
  children: ReactNode;
10
11
  }): import("react").JSX.Element;
@@ -81,10 +82,22 @@ export declare const FrameScreenLists: import("react").FunctionComponent<{
81
82
  export declare const FrameCardBadges: import("react").FunctionComponent<{
82
83
  page: PageModel;
83
84
  }>;
85
+ /** Controls and optionally preserves the mounted viewport independently of the camera. */
86
+ export declare const FrameScrollControls: import("react").FunctionComponent<{
87
+ pageId: string;
88
+ }>;
89
+ /** Keeps live input visible beside saved states without competing with them. */
90
+ export declare function FrameLiveInteractionStatus({ pageId }: {
91
+ pageId: string;
92
+ }): import("react").JSX.Element;
84
93
  /** Same-frame states, separated by the mechanism that reproduces them. */
85
94
  export declare const FrameInteractiveStates: import("react").FunctionComponent<{
86
95
  page: PageModel;
87
96
  }>;
97
+ /** Animation playback is a preview tool, not a saved interaction axis. */
98
+ export declare const FrameMotionControls: import("react").FunctionComponent<{
99
+ page: PageModel;
100
+ }>;
88
101
  /**
89
102
  * Surfaces this frame owes an answer to.
90
103
  *
@@ -1,5 +1,6 @@
1
1
  import type { StoryboardGraphViewModel } from '../editor/storyboardGraphView';
2
2
  import type { StoryboardCompositionModel } from '../editor/storyboardComposition';
3
+ type StoryboardPanelView = 'journey' | 'stateboard';
3
4
  export interface StoryboardGraphPanelProps {
4
5
  model: StoryboardGraphViewModel;
5
6
  onSelectFrame: (frameId: string) => void;
@@ -11,5 +12,8 @@ export interface StoryboardGraphPanelProps {
11
12
  composition?: StoryboardCompositionModel | null;
12
13
  /** Frame names for composition rows, which carry ids rather than frames. */
13
14
  frameNameById?: ReadonlyMap<string, string>;
15
+ /** Initial reader surface. Kept public so embedded shells can deep-link. */
16
+ initialView?: StoryboardPanelView;
14
17
  }
15
- export declare function StoryboardGraphPanel({ model, onSelectFrame, activeFrameId, composition, frameNameById, }: StoryboardGraphPanelProps): import("react").JSX.Element | null;
18
+ export declare function StoryboardGraphPanel({ model, onSelectFrame, activeFrameId, composition, frameNameById, initialView, }: StoryboardGraphPanelProps): import("react").JSX.Element | null;
19
+ export {};