stashes 0.1.35 → 0.1.36
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.
package/dist/cli.js
CHANGED
|
@@ -851,8 +851,14 @@ ${truncatedDiff}`;
|
|
|
851
851
|
}
|
|
852
852
|
function buildScreenshotPrompt(port, diff, screenshotDir, stashId) {
|
|
853
853
|
return [
|
|
854
|
-
"You are a screenshot assistant.
|
|
855
|
-
"
|
|
854
|
+
"You are a screenshot assistant. Your ONLY job is to take screenshots of a running web app using Playwright MCP tools.",
|
|
855
|
+
"",
|
|
856
|
+
"IMPORTANT RULES:",
|
|
857
|
+
"- ONLY use these Playwright MCP tools: mcp__playwright__browser_navigate, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_click, mcp__playwright__browser_snapshot",
|
|
858
|
+
"- Do NOT use any other tools (no Bash, Read, Grep, Agent, ToolSearch, etc.)",
|
|
859
|
+
"- Do NOT start any sessions or call useai tools",
|
|
860
|
+
"- Do NOT read or analyze code files \u2014 the diff below tells you everything",
|
|
861
|
+
"- Be fast \u2014 you have a strict time limit",
|
|
856
862
|
"",
|
|
857
863
|
`## The app is running at: http://localhost:${port}`,
|
|
858
864
|
"",
|
|
@@ -861,22 +867,18 @@ function buildScreenshotPrompt(port, diff, screenshotDir, stashId) {
|
|
|
861
867
|
diff,
|
|
862
868
|
"```",
|
|
863
869
|
"",
|
|
864
|
-
"##
|
|
865
|
-
|
|
866
|
-
"2.
|
|
867
|
-
"3.
|
|
868
|
-
"
|
|
869
|
-
|
|
870
|
-
"
|
|
871
|
-
" - Take a screenshot using browser_take_screenshot",
|
|
872
|
-
"4. Decide which screenshot shows the MOST visually significant change \u2014 mark it as primary",
|
|
870
|
+
"## Steps:",
|
|
871
|
+
`1. Call mcp__playwright__browser_navigate with url "http://localhost:${port}" to open the app`,
|
|
872
|
+
"2. From the diff, determine which page/route shows the changed components",
|
|
873
|
+
"3. If the change is on a different route, navigate to it",
|
|
874
|
+
"4. If the change is behind an interaction (tab click, modal open), perform it with mcp__playwright__browser_click",
|
|
875
|
+
`5. Call mcp__playwright__browser_take_screenshot to capture the page`,
|
|
876
|
+
"6. Respond with the JSON below",
|
|
873
877
|
"",
|
|
874
|
-
`## Screenshot save
|
|
875
|
-
|
|
876
|
-
`- Additional: ${join6(screenshotDir, `${stashId}-1.png`)}, ${join6(screenshotDir, `${stashId}-2.png`)}, etc.`,
|
|
878
|
+
`## Screenshot save directory: ${screenshotDir}`,
|
|
879
|
+
`Use filename "${stashId}.png" for the primary screenshot.`,
|
|
877
880
|
"",
|
|
878
|
-
"##
|
|
879
|
-
"Respond with ONLY this JSON (no markdown fences):",
|
|
881
|
+
"## After taking screenshots, respond with ONLY this JSON:",
|
|
880
882
|
"{",
|
|
881
883
|
' "screenshots": [',
|
|
882
884
|
" {",
|
|
@@ -1113,9 +1115,9 @@ async function generate(opts) {
|
|
|
1113
1115
|
await wtGit.commit(`stashes: stash ${stashId}`);
|
|
1114
1116
|
} catch {}
|
|
1115
1117
|
await worktreeManager.removeGeneration(stashId);
|
|
1116
|
-
const
|
|
1117
|
-
completedStashes.push(
|
|
1118
|
-
persistence.saveStash(
|
|
1118
|
+
const generatedStash = { ...stash, status: "screenshotting" };
|
|
1119
|
+
completedStashes.push(generatedStash);
|
|
1120
|
+
persistence.saveStash(generatedStash);
|
|
1119
1121
|
} catch (error) {
|
|
1120
1122
|
const errorMsg = error instanceof Error ? error.message : "Unknown error";
|
|
1121
1123
|
persistence.saveStash({ ...stash, status: "error", error: errorMsg });
|
|
@@ -1155,7 +1157,7 @@ async function generate(opts) {
|
|
|
1155
1157
|
model: opts.screenshotModel,
|
|
1156
1158
|
timeout: opts.screenshotTimeout
|
|
1157
1159
|
});
|
|
1158
|
-
const updatedStash = { ...stash, screenshotUrl: primary, screenshots };
|
|
1160
|
+
const updatedStash = { ...stash, status: "ready", screenshotUrl: primary, screenshots };
|
|
1159
1161
|
persistence.saveStash(updatedStash);
|
|
1160
1162
|
const idx = completedStashes.indexOf(stash);
|
|
1161
1163
|
completedStashes[idx] = updatedStash;
|
|
@@ -1168,6 +1170,7 @@ async function generate(opts) {
|
|
|
1168
1170
|
logger.error("generation", `screenshot failed for ${stash.id}`, {
|
|
1169
1171
|
error: err instanceof Error ? err.message : String(err)
|
|
1170
1172
|
});
|
|
1173
|
+
persistence.saveStash({ ...stash, status: "ready" });
|
|
1171
1174
|
emit(onProgress, { type: "ready", stashId: stash.id, screenshotPath: "" });
|
|
1172
1175
|
}
|
|
1173
1176
|
}
|
|
@@ -1259,6 +1262,7 @@ async function vary(opts) {
|
|
|
1259
1262
|
await wtGit.commit(`stashes: vary ${stashId} from ${sourceStashId}`);
|
|
1260
1263
|
} catch {}
|
|
1261
1264
|
await worktreeManager.removeGeneration(stashId);
|
|
1265
|
+
persistence.saveStash({ ...stash, status: "screenshotting" });
|
|
1262
1266
|
emit2(onProgress, { type: "screenshotting", stashId });
|
|
1263
1267
|
let screenshotPath = "";
|
|
1264
1268
|
let screenshots = [];
|
package/dist/mcp.js
CHANGED
|
@@ -733,8 +733,14 @@ ${truncatedDiff}`;
|
|
|
733
733
|
}
|
|
734
734
|
function buildScreenshotPrompt(port, diff, screenshotDir, stashId) {
|
|
735
735
|
return [
|
|
736
|
-
"You are a screenshot assistant.
|
|
737
|
-
"
|
|
736
|
+
"You are a screenshot assistant. Your ONLY job is to take screenshots of a running web app using Playwright MCP tools.",
|
|
737
|
+
"",
|
|
738
|
+
"IMPORTANT RULES:",
|
|
739
|
+
"- ONLY use these Playwright MCP tools: mcp__playwright__browser_navigate, mcp__playwright__browser_take_screenshot, mcp__playwright__browser_click, mcp__playwright__browser_snapshot",
|
|
740
|
+
"- Do NOT use any other tools (no Bash, Read, Grep, Agent, ToolSearch, etc.)",
|
|
741
|
+
"- Do NOT start any sessions or call useai tools",
|
|
742
|
+
"- Do NOT read or analyze code files \u2014 the diff below tells you everything",
|
|
743
|
+
"- Be fast \u2014 you have a strict time limit",
|
|
738
744
|
"",
|
|
739
745
|
`## The app is running at: http://localhost:${port}`,
|
|
740
746
|
"",
|
|
@@ -743,22 +749,18 @@ function buildScreenshotPrompt(port, diff, screenshotDir, stashId) {
|
|
|
743
749
|
diff,
|
|
744
750
|
"```",
|
|
745
751
|
"",
|
|
746
|
-
"##
|
|
747
|
-
|
|
748
|
-
"2.
|
|
749
|
-
"3.
|
|
750
|
-
"
|
|
751
|
-
|
|
752
|
-
"
|
|
753
|
-
" - Take a screenshot using browser_take_screenshot",
|
|
754
|
-
"4. Decide which screenshot shows the MOST visually significant change \u2014 mark it as primary",
|
|
752
|
+
"## Steps:",
|
|
753
|
+
`1. Call mcp__playwright__browser_navigate with url "http://localhost:${port}" to open the app`,
|
|
754
|
+
"2. From the diff, determine which page/route shows the changed components",
|
|
755
|
+
"3. If the change is on a different route, navigate to it",
|
|
756
|
+
"4. If the change is behind an interaction (tab click, modal open), perform it with mcp__playwright__browser_click",
|
|
757
|
+
`5. Call mcp__playwright__browser_take_screenshot to capture the page`,
|
|
758
|
+
"6. Respond with the JSON below",
|
|
755
759
|
"",
|
|
756
|
-
`## Screenshot save
|
|
757
|
-
|
|
758
|
-
`- Additional: ${join5(screenshotDir, `${stashId}-1.png`)}, ${join5(screenshotDir, `${stashId}-2.png`)}, etc.`,
|
|
760
|
+
`## Screenshot save directory: ${screenshotDir}`,
|
|
761
|
+
`Use filename "${stashId}.png" for the primary screenshot.`,
|
|
759
762
|
"",
|
|
760
|
-
"##
|
|
761
|
-
"Respond with ONLY this JSON (no markdown fences):",
|
|
763
|
+
"## After taking screenshots, respond with ONLY this JSON:",
|
|
762
764
|
"{",
|
|
763
765
|
' "screenshots": [',
|
|
764
766
|
" {",
|
|
@@ -995,9 +997,9 @@ async function generate(opts) {
|
|
|
995
997
|
await wtGit.commit(`stashes: stash ${stashId}`);
|
|
996
998
|
} catch {}
|
|
997
999
|
await worktreeManager.removeGeneration(stashId);
|
|
998
|
-
const
|
|
999
|
-
completedStashes.push(
|
|
1000
|
-
persistence.saveStash(
|
|
1000
|
+
const generatedStash = { ...stash, status: "screenshotting" };
|
|
1001
|
+
completedStashes.push(generatedStash);
|
|
1002
|
+
persistence.saveStash(generatedStash);
|
|
1001
1003
|
} catch (error) {
|
|
1002
1004
|
const errorMsg = error instanceof Error ? error.message : "Unknown error";
|
|
1003
1005
|
persistence.saveStash({ ...stash, status: "error", error: errorMsg });
|
|
@@ -1037,7 +1039,7 @@ async function generate(opts) {
|
|
|
1037
1039
|
model: opts.screenshotModel,
|
|
1038
1040
|
timeout: opts.screenshotTimeout
|
|
1039
1041
|
});
|
|
1040
|
-
const updatedStash = { ...stash, screenshotUrl: primary, screenshots };
|
|
1042
|
+
const updatedStash = { ...stash, status: "ready", screenshotUrl: primary, screenshots };
|
|
1041
1043
|
persistence.saveStash(updatedStash);
|
|
1042
1044
|
const idx = completedStashes.indexOf(stash);
|
|
1043
1045
|
completedStashes[idx] = updatedStash;
|
|
@@ -1050,6 +1052,7 @@ async function generate(opts) {
|
|
|
1050
1052
|
logger.error("generation", `screenshot failed for ${stash.id}`, {
|
|
1051
1053
|
error: err instanceof Error ? err.message : String(err)
|
|
1052
1054
|
});
|
|
1055
|
+
persistence.saveStash({ ...stash, status: "ready" });
|
|
1053
1056
|
emit(onProgress, { type: "ready", stashId: stash.id, screenshotPath: "" });
|
|
1054
1057
|
}
|
|
1055
1058
|
}
|
|
@@ -1141,6 +1144,7 @@ async function vary(opts) {
|
|
|
1141
1144
|
await wtGit.commit(`stashes: vary ${stashId} from ${sourceStashId}`);
|
|
1142
1145
|
} catch {}
|
|
1143
1146
|
await worktreeManager.removeGeneration(stashId);
|
|
1147
|
+
persistence.saveStash({ ...stash, status: "screenshotting" });
|
|
1144
1148
|
emit2(onProgress, { type: "screenshotting", stashId });
|
|
1145
1149
|
let screenshotPath = "";
|
|
1146
1150
|
let screenshots = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.2 | 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-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-purple-400:oklch(71.4% .203 305.504);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2\.5{bottom:calc(var(--spacing) * 2.5)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-1{margin-top:calc(var(--spacing) * 1)}.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)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.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)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-7{margin-left:calc(var(--spacing) * 7)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.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-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.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-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[280px\]{max-width:280px}.max-w-\[680px\]{max-width:680px}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[130px\]{min-width:130px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * -.5);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)}.translate-y-1{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[var\(--stashes-border\)\]{border-color:var(--stashes-border)}.border-\[var\(--stashes-primary\)\]{border-color:var(--stashes-primary)}.border-red-900\/40{border-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.border-red-900\/40{border-color:color-mix(in oklab,var(--color-red-900) 40%,transparent)}}.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)}}.border-white\/60{border-color:#fff9}@supports (color:color-mix(in lab,red,red)){.border-white\/60{border-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.bg-\[var\(--stashes-bg\)\]{background-color:var(--stashes-bg)}.bg-\[var\(--stashes-border\)\]{background-color:var(--stashes-border)}.bg-\[var\(--stashes-code-bg\)\]{background-color:var(--stashes-code-bg)}.bg-\[var\(--stashes-primary\)\],.bg-\[var\(--stashes-primary\)\]\/80{background-color:var(--stashes-primary)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--stashes-primary\)\]\/80{background-color:color-mix(in oklab,var(--stashes-primary) 80%,transparent)}}.bg-\[var\(--stashes-primary-dim\)\]{background-color:var(--stashes-primary-dim)}.bg-\[var\(--stashes-surface\)\]{background-color:var(--stashes-surface)}.bg-\[var\(--stashes-text-muted\)\]{background-color:var(--stashes-text-muted)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,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-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-neutral-900\/90{background-color:#171717e6}@supports (color:color-mix(in lab,red,red)){.bg-neutral-900\/90{background-color:color-mix(in oklab,var(--color-neutral-900) 90%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/40{background-color:color-mix(in oklab,var(--color-red-900) 40%,transparent)}}.bg-red-950\/30{background-color:#4608094d}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/30{background-color:color-mix(in oklab,var(--color-red-950) 30%,transparent)}}.bg-transparent{background-color:#0000}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[var\(--stashes-primary\)\]{--tw-gradient-from:var(--stashes-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-400{--tw-gradient-to:var(--color-purple-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.object-top{object-position:top}.p-1{padding:calc(var(--spacing) * 1)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.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-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.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-16{padding-block:calc(var(--spacing) * 16)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.85em\]{font-size:.85em}.text-\[8px\]{font-size:8px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--stashes-primary\)\]{color:var(--stashes-primary)}.text-\[var\(--stashes-text\)\]{color:var(--stashes-text)}.text-\[var\(--stashes-text-muted\)\]{color:var(--stashes-text-muted)}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/70{color:#fcbb00b3}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/70{color:color-mix(in oklab,var(--color-amber-400) 70%,transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-700{color:var(--color-emerald-700)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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-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-\[var\(--stashes-ring\)\]{--tw-ring-color:var(--stashes-ring)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;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-opacity{transition-property:opacity;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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.group-hover\:translate-y-0:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-\[1\.02\]:is(:where(.group):hover *){scale:1.02}.group-hover\:border-\[var\(--stashes-primary\)\]:is(:where(.group):hover *){border-color:var(--stashes-primary)}.group-hover\:text-\[var\(--stashes-primary\)\]:is(:where(.group):hover *){color:var(--stashes-primary)}.group-hover\:text-\[var\(--stashes-text\)\]:is(:where(.group):hover *){color:var(--stashes-text)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-40:is(:where(.group):hover *){opacity:.4}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-\[var\(--stashes-text-muted\)\]::placeholder{color:var(--stashes-text-muted)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.focus-within\:border-\[var\(--stashes-primary\)\]:focus-within{border-color:var(--stashes-primary)}.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-\[var\(--stashes-ring\)\]:focus-within{--tw-ring-color:var(--stashes-ring)}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--stashes-border-hover\)\]:hover{border-color:var(--stashes-border-hover)}.hover\:border-\[var\(--stashes-primary\)\]:hover{border-color:var(--stashes-primary)}.hover\:border-white:hover{border-color:var(--color-white)}.hover\:bg-\[var\(--stashes-bg\)\]:hover{background-color:var(--stashes-bg)}.hover\:bg-\[var\(--stashes-primary\)\]:hover{background-color:var(--stashes-primary)}.hover\:bg-\[var\(--stashes-primary-dim\)\]:hover{background-color:var(--stashes-primary-dim)}.hover\:bg-\[var\(--stashes-primary-hover\)\]:hover{background-color:var(--stashes-primary-hover)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.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\:text-\[var\(--stashes-primary\)\]:hover{color:var(--stashes-primary)}.hover\:text-\[var\(--stashes-text\)\]:hover{color:var(--stashes-text)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.active\:bg-\[var\(--stashes-primary\)\]:active{background-color:var(--stashes-primary)}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-10{padding:calc(var(--spacing) * 10)}}@media(min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:p-12{padding:calc(var(--spacing) * 12)}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:border-red-900\/40{border-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/40{border-color:color-mix(in oklab,var(--color-red-900) 40%,transparent)}}.dark\:bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.dark\:bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.dark\:bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-red-950\/30{background-color:#4608094d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-950\/30{background-color:color-mix(in oklab,var(--color-red-950) 30%,transparent)}}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-emerald-400{color:var(--color-emerald-400)}.dark\:text-red-400{color:var(--color-red-400)}}}:root{--stashes-primary:#16a34a;--stashes-primary-hover:#15803d;--stashes-primary-dim:#16a34a0f;--stashes-bg:#f8f8f7;--stashes-surface:#fff;--stashes-surface-hover:#fafaf9;--stashes-border:#e8e8e5;--stashes-border-hover:#d4d4d0;--stashes-text:#1c1c1c;--stashes-text-muted:#8b8b8b;--stashes-code-bg:#0000000a;--stashes-shadow-sm:0 1px 2px #0000000a;--stashes-shadow:0 2px 8px #0000000f, 0 1px 2px #0000000a;--stashes-shadow-lg:0 8px 24px #0000001a, 0 2px 6px #0000000a;--stashes-ring:#16a34a4d}@media(prefers-color-scheme:dark){:root{--stashes-primary:#22c55e;--stashes-primary-hover:#4ade80;--stashes-primary-dim:#22c55e14;--stashes-bg:#0c0c0c;--stashes-surface:#161616;--stashes-surface-hover:#1e1e1e;--stashes-border:#2a2a2a;--stashes-border-hover:#3a3a3a;--stashes-text:#e8e8e8;--stashes-text-muted:#737373;--stashes-code-bg:#ffffff0d;--stashes-shadow-sm:0 1px 2px #0003;--stashes-shadow:0 2px 8px #0000004d, 0 1px 2px #0003;--stashes-shadow-lg:0 8px 24px #0006, 0 2px 6px #0003;--stashes-ring:#22c55e4d}}body{background:var(--stashes-bg);color:var(--stashes-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv01","cv02","cv03","cv04";margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:var(--stashes-border) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--stashes-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--stashes-border-hover)}:focus-visible{outline:2px solid var(--stashes-ring);outline-offset:2px}textarea:focus-visible{outline:none}::selection{background:var(--stashes-primary-dim);color:var(--stashes-text)}.stash-shadow{box-shadow:var(--stashes-shadow-sm);transition:box-shadow .2s,transform .2s}.stash-shadow:hover{box-shadow:var(--stashes-shadow-lg)}.stash-shadow-md{box-shadow:var(--stashes-shadow);transition:box-shadow .2s,transform .2s}.stash-shadow-md:hover{box-shadow:var(--stashes-shadow-lg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
|