playthrough 0.2.0 → 0.3.1
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/INSTRUCTIONS.md +63 -73
- package/package.json +1 -1
- package/src/{read-C9bKWxxP.js → flows-BcISV1M-.js} +683 -1184
- package/src/playthrough.js +249 -87
- package/src/playwright.config.js +6 -10
- package/src/read-Bg9XVTtn.js +278 -0
- package/src/reporter-BEodHYRI.js +930 -0
- package/src/reporter.js +1 -1
- package/src/test.js +125 -16
- package/types/cli/src/app.d.ts +2 -0
- package/types/cli/src/changes.d.ts +1 -0
- package/types/cli/src/compare.d.ts +7 -2
- package/types/cli/src/flows.d.ts +8 -4
- package/types/cli/src/pictures.d.ts +1 -0
- package/types/cli/src/read.d.ts +3 -1
- package/types/cli/src/repo.d.ts +2 -0
- package/types/cli/src/reporter.d.ts +18 -4
- package/types/cli/src/setup.d.ts +4 -1
- package/types/cli/src/test.d.ts +1 -1
- package/types/page/src/found.d.ts +4 -2
- package/types/page/src/reading.d.ts +11 -0
- package/types/review/src/rules.d.ts +3 -1
- package/types/review/src/store.d.ts +3 -0
- package/viewer/assets/index-D64VrgNj.js +193 -0
- package/viewer/assets/index-gTfnUrcK.css +2 -0
- package/viewer/index.html +2 -2
- package/src/reporter-CECNk7aW.js +0 -200
- package/viewer/assets/index-BriVL50M.js +0 -193
- package/viewer/assets/index-DaS2F2-s.css +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--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-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--spacing:.25rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-normal:0em;--leading-normal:1.5;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--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;--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);--ease-calm:cubic-bezier(.2, .8, .2, 1)}}@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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background-color:var(--ground);--tw-leading:var(--leading-normal);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:13px;line-height:var(--leading-normal);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer}:focus-visible{border-radius:var(--radius-sm);outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--amber)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.-top-1{top:calc(var(--spacing) * -1)}.-top-2{top:calc(var(--spacing) * -2)}.-top-3{top:calc(var(--spacing) * -3)}.-top-\[2px\]{top:-2px}.-top-\[3px\]{top:-3px}.-top-\[9px\]{top:-9px}.-top-px{top:-1px}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[3px\]{top:3px}.top-\[9px\]{top:9px}.top-\[11px\]{top:11px}.top-\[15px\]{top:15px}.top-\[17px\]{top:17px}.top-\[23px\]{top:23px}.top-\[calc\(50\%-8px\)\]{top:calc(50% - 8px)}.top-px{top:1px}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-\[18px\]{right:18px}.right-\[calc\(var\(--lw\,0px\)\+12px\)\]{right:calc(var(--lw,0px) + 12px)}.bottom-0{bottom:0}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-\[9px\]{bottom:9px}.bottom-\[21px\]{bottom:21px}.bottom-\[22px\]{bottom:22px}.bottom-\[calc\(100\%\+3px\)\]{bottom:calc(100% + 3px)}.bottom-\[calc\(100\%\+5px\)\]{bottom:calc(100% + 5px)}.bottom-\[calc\(100\%-1px\)\]{bottom:calc(100% - 1px)}.bottom-full{bottom:100%}.-left-\[7px\]{left:-7px}.-left-\[9px\]{left:-9px}.-left-\[11px\]{left:-11px}.left-0{left:0}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-\[11px\]{left:11px}.left-\[13px\]{left:13px}.left-\[calc\(50\%\+2px\)\]{left:calc(50% + 2px)}.left-\[calc\(100\%\+4px\)\]{left:calc(100% + 4px)}.left-\[calc\(var\(--lw\,0px\)\+12px\)\]{left:calc(var(--lw,0px) + 12px)}.left-\[calc\(var\(--lw\,0px\)\/2\)\]{left:calc(var(--lw,0px) / 2)}.isolate{isolation:isolate}.z-1{z-index:1}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-6{z-index:6}.z-7{z-index:7}.z-8{z-index:8}.z-9{z-index:9}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-60{z-index:60}.z-299{z-index:299}.z-300{z-index:300}.order-2{order:2}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-end-4{grid-column-end:4}.row-start-1{grid-row-start:1}.float-right{float:right}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-\[3px\]{margin-inline:-3px}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-0\.5{margin-block:calc(var(--spacing) * -.5)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-\[4\.5px\]{margin-top:-4.5px}.-mt-\[17px\]{margin-top:-17px}.-mt-\[calc\(var\(--s\,4\)\*\.5px\)\]{margin-top:calc(calc(var(--s,4) * .5px) * -1)}.-mt-px{margin-top:-1px}.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-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-\[3px\]{margin-top:3px}.mt-px{margin-top:1px}.-mr-1\.5{margin-right:calc(var(--spacing) * -1.5)}.-mr-\[7px\]{margin-right:-7px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-5{margin-right:calc(var(--spacing) * 5)}.mr-\[5px\]{margin-right:5px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-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-2\.5{margin-left:calc(var(--spacing) * -2.5)}.-ml-\[1\.5px\]{margin-left:-1.5px}.-ml-\[3px\]{margin-left:-3px}.-ml-\[4\.5px\]{margin-left:-4.5px}.-ml-\[7px\]{margin-left:-7px}.-ml-\[17px\]{margin-left:-17px}.-ml-\[calc\(var\(--s\,4\)\*\.5px\)\]{margin-left:calc(calc(var(--s,4) * .5px) * -1)}.-ml-px{margin-left:-1px}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-\[19px\]{margin-left:19px}.ml-auto{margin-left:auto}.box-content{box-sizing:content-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!hidden{display:none!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.aspect-\[1\.6\]{aspect-ratio:1.6}.size-0{width:0;height:0}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\[7px\]{width:7px;height:7px}.size-\[9px\]{width:9px;height:9px}.size-\[18px\]{width:18px;height:18px}.size-\[34px\]{width:34px;height:34px}.size-\[62\%\]{width:62%;height:62%}.size-\[calc\(var\(--s\,4\)\*1px\)\]{width:calc(var(--s,4) * 1px);height:calc(var(--s,4) * 1px)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[1\.5em\]{height:1.5em}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[calc\(1\.5em\+10px\)\]{height:calc(1.5em + 10px)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-\[calc\(100dvh-140px\)\]{max-height:calc(100dvh - 140px)}.max-h-\[min\(55vh\,420px\)\]{max-height:min(55vh,420px)}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[46px\]{min-height:46px}.w-0\.5{width:calc(var(--spacing) * .5)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-\[3px\]{width:3px}.w-\[18px\]{width:18px}.w-\[78px\]{width:78px}.w-\[300px\]{width:300px}.w-\[330px\]{width:330px}.w-\[340px\]{width:340px}.w-\[400px\]{width:400px}.w-\[var\(--hw\,100\%\)\]{width:var(--hw,100%)}.w-full{width:100%}.w-px{width:1px}.max-w-\[28rem\]{max-width:28rem}.max-w-\[220px\]{max-width:220px}.max-w-\[320px\]{max-width:320px}.max-w-\[380px\]{max-width:380px}.max-w-\[1240px\]{max-width:1240px}.max-w-\[calc\(\(100dvh-200px\)\*1\.6\)\]{max-width:calc(160dvh - 320px)}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.max-w-\[min\(30rem\,100\%\)\]{max-width:min(30rem,100%)}.max-w-full{max-width:100%}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-30{min-width:calc(var(--spacing) * 30)}.min-w-\[46px\]{min-width:46px}.min-w-\[78px\]{min-width:78px}.flex-1{flex:1}.flex-\[1_1_100\%\]{flex:100%}.flex-\[1_1_160px\]{flex:160px}.flex-\[1_1_auto\]{flex:auto}.flex-none{flex:none}.grow{flex-grow:1}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-1{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-1px\]{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[2px\]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-140{--tw-scale-x:140%;--tw-scale-y:140%;--tw-scale-z:140%;scale:var(--tw-scale-x) var(--tw-scale-y)}.\[scale\:max\(var\(--m\,1\)\,1\.75\)\]{scale:max(var(--m,1), 1.75)}.\[scale\:var\(--m\,1\)\]{scale:var(--m,1)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-arrive{animation:arrive .24s var(--ease-calm) both}.animate-breathe{animation:2.4s ease-in-out infinite breathe}.animate-drop{animation:drop .3s var(--ease-calm) both}.animate-pop{animation:pop .5s var(--ease-calm) both}.animate-pulse{animation:var(--animate-pulse)}.animate-tick{animation:tick .35s .1s var(--ease-calm) both}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-none{cursor:none}.cursor-pointer{cursor:pointer}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize-none{resize:none}.grid-cols-\[6px_minmax\(0\,1fr\)_auto\]{grid-template-columns:6px minmax(0,1fr) auto}.grid-cols-\[12px_minmax\(0\,1fr\)_auto\]{grid-template-columns:12px minmax(0,1fr) auto}.grid-cols-\[18px_minmax\(0\,1fr\)\]{grid-template-columns:18px minmax(0,1fr)}.grid-cols-\[18px_minmax\(0\,1fr\)_auto\]{grid-template-columns:18px minmax(0,1fr) auto}.grid-cols-\[64px_minmax\(0\,1fr\)_auto\]{grid-template-columns:64px minmax(0,1fr) auto}.grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.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}.justify-items-center{justify-items:center}.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-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)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-\[3px\]{gap:3px}.gap-\[9px\]{gap:9px}.gap-px{gap:1px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[1\.5px\]{border-radius:1.5px}.rounded-\[1px\]{border-radius:1px}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[7px\]{border-radius:7px}.rounded-\[10px\]{border-radius:10px}.rounded-\[28\%\]{border-radius:28%}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-\[1px\]{border-top-right-radius:1px;border-bottom-right-radius:1px}.rounded-r-\[2px\]{border-top-right-radius:2px;border-bottom-right-radius:2px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-\[\#747775\]{border-color:#747775}.border-\[rgba\(30\,35\,48\,0\.6\)\]{border-color:#1e233099}.border-\[rgba\(40\,44\,54\,0\.5\)\]{border-color:#282c3680}.border-amber\/70{border-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.border-amber\/70{border-color:color-mix(in oklab, var(--amber) 70%, transparent)}}.border-line{border-color:var(--line)}.bg-\(--c\){background-color:var(--c)}.bg-\[\#0b57d0\]{background-color:#0b57d0}.bg-\[\#2B2E35\],.bg-\[\#2b2e35\]{background-color:#2b2e35}.bg-\[color-mix\(in_srgb\,var\(--amber\)_22\%\,var\(--ground\)\)\]{background-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--amber\)_22\%\,var\(--ground\)\)\]{background-color:color-mix(in srgb,var(--amber) 22%,var(--ground))}}.bg-\[color-mix\(in_srgb\,var\(--c\)_18\%\,var\(--ground\)\)\]{background-color:var(--c)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--c\)_18\%\,var\(--ground\)\)\]{background-color:color-mix(in srgb,var(--c) 18%,var(--ground))}}.bg-\[rgba\(30\,34\,44\,0\.62\)\]{background-color:#1e222c9e}.bg-\[rgba\(40\,44\,54\,0\.06\)\]{background-color:#282c360f}.bg-\[rgba\(247\,247\,245\,\.45\)\]{background-color:#f7f7f573}.bg-\[rgba\(247\,247\,245\,calc\(var\(--k\,0\)\*\.45\)\)\]{background-color:rgba(247,247,245,calc(var(--k,0) * .45))}.bg-\[rgba\(255\,255\,255\,0\.5\)\]{background-color:#ffffff80}.bg-amber{background-color:var(--amber)}.bg-current{background-color:currentColor}.bg-faint{background-color:var(--faint)}.bg-fg{background-color:var(--fg)}.bg-green,.bg-green\/12{background-color:var(--green)}@supports (color:color-mix(in lab, red, red)){.bg-green\/12{background-color:color-mix(in oklab, var(--green) 12%, transparent)}}.bg-ground{background-color:var(--ground)}.bg-hover{background-color:var(--hover)}.bg-line{background-color:var(--line)}.bg-paper{background-color:#f7f7f5}.bg-slate,.bg-slate\/14{background-color:var(--slate)}@supports (color:color-mix(in lab, red, red)){.bg-slate\/14{background-color:color-mix(in oklab, var(--slate) 14%, transparent)}}.bg-soft{background-color:var(--soft)}.bg-surface{background-color:var(--surface)}.bg-white{background-color:#fff}.bg-\[linear-gradient\(90deg\,currentColor_50\%\,transparent_50\%\)\]{background-image:linear-gradient(90deg,currentColor 50%,#0000 50%)}.fill-none{fill:none}.stroke-current{stroke:currentColor}.stroke-\[1\.4\]{stroke-width:1.4px}.object-contain{object-fit:contain}.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-4{padding:calc(var(--spacing) * 4)}.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-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[3px\]{padding-inline:3px}.px-\[7px\]{padding-inline:7px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-\[3px\]{padding-block:3px}.py-\[7px\]{padding-block:7px}.py-px{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-\[18px\]{padding-top:18px}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-\[7px\]{padding-right:7px}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-\[15px\]{padding-left:15px}.pl-\[18px\]{padding-left:18px}.pl-\[42px\]{padding-left:42px}.pl-\[44px\]{padding-left:44px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-\[system-ui\,sans-serif\]{font-family:system-ui,sans-serif}.font-recorded{font-family:system-ui,Segoe UI,sans-serif}.font-ui{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}.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-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[20px\]{font-size:20px}.text-\[smaller\]{font-size:smaller}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.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-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-\[17px\]{--tw-leading:17px;line-height:17px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[21px\]{--tw-leading:21px;line-height:21px}.leading-\[30px\]{--tw-leading:30px;line-height:30px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.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-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0b57d0\]{color:#0b57d0}.text-\[\#1f1f1f\]{color:#1f1f1f}.text-\[\#3b3e46\]{color:#3b3e46}.text-\[\#6c707a\]{color:#6c707a}.text-\[\#8a8e97\]{color:#8a8e97}.text-\[\#222222\]{color:#222}.text-\[color-mix\(in_srgb\,var\(--c\)_80\%\,var\(--fg\)\)\]{color:var(--c)}@supports (color:color-mix(in lab, red, red)){.text-\[color-mix\(in_srgb\,var\(--c\)_80\%\,var\(--fg\)\)\]{color:color-mix(in srgb,var(--c) 80%,var(--fg))}}.text-amber-ink{color:var(--amber-ink)}.text-faint{color:var(--faint)}.text-fg{color:var(--fg)}.text-green{color:var(--green)}.text-ground{color:var(--ground)}.text-slate{color:var(--slate)}.text-soft{color:var(--soft)}.text-white{color:#fff}.not-italic{font-style:normal}.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-30{opacity:.3}.opacity-45{opacity:.45}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[var\(--n\,0\)\]{opacity:var(--n,0)}.shadow-\[0_0_0_1\.5px_\#fff\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#fff);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_0_0_1\.5px_rgba\(236\,178\,72\,0\.95\)\,0_6px_20px_rgba\(20\,24\,34\,0\.12\)\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#ecb248f2), 0 6px 20px var(--tw-shadow-color,#1418221f);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_0_0_1\.5px_var\(--ground\)\,0_0_0_3px_var\(--fg\)\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,var(--ground)), 0 0 0 3px var(--tw-shadow-color,var(--fg));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_0_0_1\.5px_var\(--ground\)\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,var(--ground));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_0_0_1px_currentColor\]{--tw-shadow:0 0 0 1px var(--tw-shadow-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)}.shadow-\[0_0_0_1px_var\(--edge\)\,0_6px_20px_var\(--drop\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--edge)), 0 6px 20px var(--tw-shadow-color,var(--drop));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_0_0_1px_var\(--line\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--line));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_0_0_2px_var\(--ground\)\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--ground));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_3px_rgba\(0\,0\,0\,\.2\)\,0_6px_24px_rgba\(0\,0\,0\,\.24\)\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0003), 0 6px 24px var(--tw-shadow-color,#0000003d);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_3px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 1px 3px 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-\[inset_0_0_0_1\.5px_color-mix\(in_srgb\,var\(--amber\)_50\%\,var\(--ground\)\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--amber))}@supports (color:color-mix(in lab, red, red)){.shadow-\[inset_0_0_0_1\.5px_color-mix\(in_srgb\,var\(--amber\)_50\%\,var\(--ground\)\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,color-mix(in srgb,var(--amber) 50%,var(--ground)))}}.shadow-\[inset_0_0_0_1\.5px_color-mix\(in_srgb\,var\(--amber\)_50\%\,var\(--ground\)\)\]{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_1\.5px_color-mix\(in_srgb\,var\(--green\)_70\%\,var\(--fg\)\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--green))}@supports (color:color-mix(in lab, red, red)){.shadow-\[inset_0_0_0_1\.5px_color-mix\(in_srgb\,var\(--green\)_70\%\,var\(--fg\)\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,color-mix(in srgb,var(--green) 70%,var(--fg)))}}.shadow-\[inset_0_0_0_1\.5px_color-mix\(in_srgb\,var\(--green\)_70\%\,var\(--fg\)\)\]{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_1\.5px_currentColor\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-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)}.shadow-\[inset_0_0_0_1\.5px_var\(--amber\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--amber));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_1\.5px_var\(--fg\)\,0_0_0_1\.5px_var\(--ground\)\,0_0_0_3px_var\(--fg\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--fg)), 0 0 0 1.5px var(--tw-shadow-color,var(--ground)), 0 0 0 3px var(--tw-shadow-color,var(--fg));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_1\.5px_var\(--fg\)\,0_0_0_1\.5px_var\(--ground\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--fg)), 0 0 0 1.5px var(--tw-shadow-color,var(--ground));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_1\.5px_var\(--fg\)\,0_0_0_2\.5px_var\(--ground\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--fg)), 0 0 0 2.5px var(--tw-shadow-color,var(--ground));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_1\.5px_var\(--soft\)\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--soft));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_1px_var\(--line\)\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--line));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_2px_var\(--fg\)\]{--tw-shadow:inset 0 0 0 2px var(--tw-shadow-color,var(--fg));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-float{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--edge)), 0 10px 30px var(--tw-shadow-color,var(--drop));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-frame{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#14182212), 0 1px 3px var(--tw-shadow-color,#1418220d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-pin{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#fff), 0 1px 3px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-tip{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--line)), 0 2px 6px var(--tw-shadow-color,#14182214);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\!ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.ring{--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)}.\[box-shadow\:0_0_40px_14px_rgba\(226\,170\,70\,0\.38\)\,inset_0_0_36px_10px_rgba\(255\,214\,150\,0\.4\)\]{box-shadow:0 0 40px 14px #e2aa4661,inset 0 0 36px 10px #ffd69666}.\[box-shadow\:inset_0_0_0_1\.5px_rgba\(217\,162\,58\,0\.75\)\,inset_0_0_22px_rgba\(217\,162\,58\,0\.16\)\]{box-shadow:inset 0 0 0 1.5px #d9a23abf,inset 0 0 22px #d9a23a29}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-\[1\.5px\]{outline-style:var(--tw-outline-style);outline-width:1.5px}.outline-offset-4{outline-offset:4px}.outline-\(--c\){outline-color:var(--c)}.outline-\[\#2b2e35\]{outline-color:#2b2e35}.outline-\[color-mix\(in_srgb\,var\(--c\)_50\%\,transparent\)\]{outline-color:var(--c)}@supports (color:color-mix(in lab, red, red)){.outline-\[color-mix\(in_srgb\,var\(--c\)_50\%\,transparent\)\]{outline-color:color-mix(in srgb,var(--c) 50%,transparent)}}.outline-\[rgba\(43\,46\,53\,0\.4\)\]{outline-color:#2b2e3566}.outline-\[rgba\(217\,162\,58\,0\.55\)\]{outline-color:#d9a23a8c}.outline-amber{outline-color:var(--amber)}.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\:drop-shadow\(0_1px_1px_rgba\(0\,0\,0\,\.3\)\)\]{filter:drop-shadow(0 1px 1px #0000004d)}.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-\[background-color\,box-shadow\,color\,scale\]{transition-property:background-color,box-shadow,color,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,box-shadow\,color\]{transition-property:background-color,box-shadow,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,box-shadow\]{transition-property:background-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\]{transition-property:background-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[clip-path\,visibility\]{transition-property:clip-path,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,opacity\]{transition-property:left,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,width\,opacity\]{transition-property:left,width,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\]{transition-property:left;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,scale\,background-color\]{transition-property:opacity,scale,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,translate\]{transition-property:opacity,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,visibility\]{transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[scale\,background-color\]{transition-property:scale,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[stroke-width\]{transition-property:stroke-width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[top\,bottom\,width\,margin\,border-radius\]{transition-property:top,bottom,width,margin,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[top\,height\,border-radius\]{transition-property:top,height,border-radius;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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))}.delay-\[0s\,280ms\]{transition-delay:0s,.28s}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-160{--tw-duration:.16s;transition-duration:.16s}.duration-180{--tw-duration:.18s;transition-duration:.18s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-240{--tw-duration:.24s;transition-duration:.24s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-\[150ms\,120ms\,150ms\]{--tw-duration:.15s,.12s,.15s;transition-duration:.15s,.12s,.15s}.duration-\[280ms\,0s\]{--tw-duration:.28s,0s;transition-duration:.28s,0s}.ease-calm{--tw-ease:cubic-bezier(.2, .8, .2, 1);transition-timing-function:cubic-bezier(.2,.8,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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)}.will-change-transform{will-change:transform}.outline-dashed{--tw-outline-style:dashed;outline-style:dashed}.outline-solid{--tw-outline-style:solid;outline-style:solid}.select-none{-webkit-user-select:none;user-select:none}.\[background\:linear-gradient\(var\(--hover\)\,var\(--hover\)\)\,var\(--ground\)\]{background:linear-gradient(var(--hover),var(--hover)),var(--ground)}.\[background\:radial-gradient\(circle_at_var\(--x\)_var\(--y\)\,rgba\(255\,232\,190\,0\.15\)\,rgba\(255\,214\,150\,0\.5\)\)\]{background:radial-gradient(circle at var(--x) var(--y),#ffe8be26,#ffd69680)}.\[border\:2\.5px_solid_rgba\(236\,178\,72\,0\.95\)\]{border:2.5px solid #ecb248f2}.\[clip-path\:inset\(0_0_0_calc\(100\%_-_var\(--lw\,0px\)\)_round_8px\)\]{clip-path:inset(0 0 0 calc(100% - var(--lw,0px)) round 8px)}.\[clip-path\:inset\(0_calc\(100\%_-_var\(--lw\,0px\)\)_0_0_round_8px\)\]{clip-path:inset(0 calc(100% - var(--lw,0px)) 0 0 round 8px)}.\[grid-area\:1\/1\]{grid-area:1/1}.\[transition\:opacity_250ms_var\(--ease-calm\)\,outline-color_150ms_var\(--ease-calm\)\,outline-width_150ms_var\(--ease-calm\)\]{transition:opacity .25s var(--ease-calm),outline-color .15s var(--ease-calm),outline-width .15s var(--ease-calm)}:is(.\*\:absolute>*){position:absolute}:is(.\*\:top-1\/2>*){top:50%}:is(.\*\*\:cursor-ew-resize\! *){cursor:ew-resize!important}@media (hover:hover){.group-hover\/dot\:scale-140:is(:where(.group\/dot):hover *){--tw-scale-x:140%;--tw-scale-y:140%;--tw-scale-z:140%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/end\:scale-115:is(:where(.group\/end):hover *){--tw-scale-x:115%;--tw-scale-y:115%;--tw-scale-z:115%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/look\:translate-y-0:is(:where(.group\/look):hover *){--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\/look\:opacity-100:is(:where(.group\/look):hover *){opacity:1}.group-hover\/mark\:scale-130:is(:where(.group\/mark):hover *){--tw-scale-x:130%;--tw-scale-y:130%;--tw-scale-z:130%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/name\:bg-soft:is(:where(.group\/name):hover *){background-color:var(--soft)}.group-hover\/row\:bg-hover:is(:where(.group\/row):hover *){background-color:var(--hover)}.group-hover\/row\:text-fg:is(:where(.group\/row):hover *){color:var(--fg)}.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}.group-hover\/take\:translate-y-0:is(:where(.group\/take):hover *){--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\/take\:opacity-100:is(:where(.group\/take):hover *),.group-hover\/time\:opacity-100:is(:where(.group\/time):hover *){opacity:1}}.group-disabled\/look\:opacity-55:is(:where(.group\/look):disabled *){opacity:.55}.group-has-\[\[data-open\=left\]\]\/controls\:pointer-events-none:is(:where(.group\/controls):has([data-open=left]) *){pointer-events:none}.group-has-\[\[data-open\=left\]\]\/controls\:opacity-0:is(:where(.group\/controls):has([data-open=left]) *){opacity:0}.group-has-\[\[data-open\=right\]\]\/controls\:pointer-events-none:is(:where(.group\/controls):has([data-open=right]) *){pointer-events:none}.group-has-\[\[data-open\=right\]\]\/controls\:opacity-0:is(:where(.group\/controls):has([data-open=right]) *){opacity:0}.group-has-\[\[data-say\]\:hover\]\/rounds\:translate-y-0:is(:where(.group\/rounds):has([data-say]:hover) *){--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-has-\[\[data-say\]\:hover\]\/rounds\:opacity-100:is(:where(.group\/rounds):has([data-say]:hover) *){opacity:1}.group-data-bare\/stage\:\[filter\:drop-shadow\(0_1px_1px_rgba\(0\,0\,0\,\.3\)\)_opacity\(0\)\]:is(:where(.group\/stage)[data-bare] *){filter:drop-shadow(0 1px 1px #0000004d)opacity(0)}.group-data-bare\/stage\:\[filter\:opacity\(0\)\]:is(:where(.group\/stage)[data-bare] *){filter:opacity(0)}.group-data-open\/rounds\:visible:is(:where(.group\/rounds)[data-open] *){visibility:visible}.group-data-open\/rounds\:opacity-100:is(:where(.group\/rounds)[data-open] *){opacity:1}.group-data-open\/rounds\:delay-0:is(:where(.group\/rounds)[data-open] *){transition-delay:0s}.group-data-open\/rounds\:delay-100:is(:where(.group\/rounds)[data-open] *){transition-delay:.1s}.group-data-open\/rounds\:delay-\[calc\(var\(--i\,0\)\*22ms\+60ms\)\,0s\,0s\]:is(:where(.group\/rounds)[data-open] *){transition-delay:calc(var(--i,0) * 22ms + 60ms),0s,0s}.group-data-open\/rounds\:\[clip-path\:inset\(0_0_0_0_round_8px\)\]:is(:where(.group\/rounds)[data-open] *){clip-path:inset(0 round 8px)}.placeholder\:text-faint::placeholder{color:var(--faint)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-x-20:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * -20)}.before\:-inset-y-12:before{content:var(--tw-content);inset-block:calc(var(--spacing) * -12)}.before\:inset-y-0:before{content:var(--tw-content);inset-block:0}.before\:right-0:before{content:var(--tw-content);right:0}.before\:left-\[31px\]:before{content:var(--tw-content);left:31px}.before\:-z-1:before{content:var(--tw-content);z-index:calc(1 * -1)}.before\:mr-1\.5:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 1.5)}.before\:mr-\[5px\]:before{content:var(--tw-content);margin-right:5px}.before\:mb-px:before{content:var(--tw-content);margin-bottom:1px}.before\:ml-px:before{content:var(--tw-content);margin-left:1px}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:size-1\.5:before{content:var(--tw-content);width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.before\:flex-\[1_0_10px\]:before{content:var(--tw-content);flex:1 0 10px}.before\:animate-glow:before{content:var(--tw-content);animation:1.2s ease-out glow}.before\:rounded-full:before{content:var(--tw-content);border-radius:2147483647px}.before\:rounded-lg:before{content:var(--tw-content);border-radius:var(--radius-lg)}.before\:bg-amber:before{content:var(--tw-content);background-color:var(--amber)}.before\:bg-hover:before{content:var(--tw-content);background-color:var(--hover)}.before\:bg-\[radial-gradient\(closest-side\,rgba\(255\,255\,255\,\.92\)_40\%\,rgba\(255\,255\,255\,0\)\)\]:before{content:var(--tw-content);background-image:radial-gradient(closest-side,#ffffffeb 40%,#fff0)}.before\:align-middle:before{content:var(--tw-content);vertical-align:middle}.before\:transition-colors:before{content:var(--tw-content);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))}.before\:duration-150:before{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.before\:ease-calm:before{content:var(--tw-content);--tw-ease:cubic-bezier(.2, .8, .2, 1);transition-timing-function:cubic-bezier(.2,.8,.2,1)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:order-1:after{content:var(--tw-content);order:1}.after\:flex-\[1_0_10px\]:after{content:var(--tw-content);flex:1 0 10px}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}@media (hover:hover){.hover\:top-3\.5:hover{top:calc(var(--spacing) * 3.5)}.hover\:h-2:hover{height:calc(var(--spacing) * 2)}.hover\:scale-112:hover{--tw-scale-x:112%;--tw-scale-y:112%;--tw-scale-z:112%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:rounded-\[4px\]:hover{border-radius:4px}.hover\:bg-hover:hover{background-color:var(--hover)}.hover\:bg-line:hover{background-color:var(--line)}.hover\:bg-surface:hover{background-color:var(--surface)}.hover\:text-fg:hover{color:var(--fg)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-88:hover{opacity:.88}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_var\(--line\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--line));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-\[inset_0_0_0_1px_var\(--faint\)\]:hover{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--faint));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:before\:bg-hover:hover:before{content:var(--tw-content);background-color:var(--hover)}}.focus\:shadow-\[inset_0_0_0_1px_var\(--amber\)\]:focus{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--amber));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:shadow-\[inset_0_0_0_1px_var\(--slate\)\]:focus{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--slate));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\:bg-hover:focus-visible{background-color:var(--hover)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.enabled\:hover\:bg-hover:enabled:hover{background-color:var(--hover)}.enabled\:hover\:text-fg:enabled:hover{color:var(--fg)}.enabled\:hover\:shadow-\[inset_0_0_0_1px_var\(--faint\)\]:enabled:hover{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--faint));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.disabled\:cursor-default:disabled{cursor:default}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:text-faint:disabled{color:var(--faint)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}.disabled\:shadow-\[inset_0_0_0_1px_var\(--line\)\]:disabled{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--line));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:where([aria-pressed=true]) .in-aria-pressed\:text-inherit{color:inherit}:where([aria-pressed=true]) .in-aria-pressed\:opacity-60{opacity:.6}:where([aria-pressed=true]) .in-aria-pressed\:shadow-\[0_0_0_1px_currentColor\]{--tw-shadow:0 0 0 1px var(--tw-shadow-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)}:where([data-absent]) .in-data-absent\:bg-surface{background-color:var(--surface)}:where([data-absent]) .in-data-absent\:font-ui{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}:where([data-absent]) .in-data-absent\:text-\[13px\]{font-size:13px}:where([data-absent]) .in-data-absent\:leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}:where([data-absent]) .in-data-absent\:font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}:where([data-absent]) .in-data-absent\:tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}:where([data-absent]) .in-data-absent\:text-faint{color:var(--faint)}:where([data-absent]) .in-data-absent\:before\:hidden:before{content:var(--tw-content);display:none}.aria-expanded\:bg-surface[aria-expanded=true]{background-color:var(--surface)}.aria-expanded\:shadow-\[0_0_0_1px_var\(--line\)\][aria-expanded=true]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--line));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-pressed\:bg-hover[aria-pressed=true]{background-color:var(--hover)}.aria-pressed\:bg-surface[aria-pressed=true]{background-color:var(--surface)}.aria-pressed\:text-fg[aria-pressed=true]{color:var(--fg)}.aria-pressed\:shadow-\[0_0_0_1px_var\(--line\)\][aria-pressed=true]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--line));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-flying\:invisible[data-flying]{visibility:hidden}.data-mine\:bg-\[\#EDB654\][data-mine]{background-color:#edb654}.data-mine\:text-\[\#3B2A07\][data-mine]{color:#3b2a07}.data-on\:bg-hover[data-on]{background-color:var(--hover)}.data-one\:outline-transparent[data-one]{outline-color:#0000}.data-over\:pointer-events-none[data-over]{pointer-events:none}.data-over\:z-10[data-over]{z-index:10}.data-playing\:opacity-0[data-playing]{opacity:0}.data-pressed\:bg-\[\#0842a0\][data-pressed]{background-color:#0842a0}.data-pressed\:bg-\[\#e8eef8\][data-pressed]{background-color:#e8eef8}.data-\[say\=arrived\]\:before\:mr-1\.5[data-say=arrived]:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 1.5)}.data-\[say\=arrived\]\:before\:mb-px[data-say=arrived]:before{content:var(--tw-content);margin-bottom:1px}.data-\[say\=arrived\]\:before\:inline-block[data-say=arrived]:before{content:var(--tw-content);display:inline-block}.data-\[say\=arrived\]\:before\:size-1\.5[data-say=arrived]:before{content:var(--tw-content);width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.data-\[say\=arrived\]\:before\:rounded-full[data-say=arrived]:before{content:var(--tw-content);border-radius:2147483647px}.data-\[say\=arrived\]\:before\:bg-amber[data-say=arrived]:before{content:var(--tw-content);background-color:var(--amber)}.data-\[say\=arrived\]\:before\:align-middle[data-say=arrived]:before{content:var(--tw-content);vertical-align:middle}.data-\[say\=working\]\:before\:mt-\[calc\(\.5lh-3px\)\][data-say=working]:before{content:var(--tw-content);margin-top:calc(.5lh - 3px)}.data-\[say\=working\]\:before\:mr-1\.5[data-say=working]:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 1.5)}.data-\[say\=working\]\:before\:inline-block[data-say=working]:before{content:var(--tw-content);display:inline-block}.data-\[say\=working\]\:before\:size-1\.5[data-say=working]:before{content:var(--tw-content);width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.data-\[say\=working\]\:before\:animate-breathe[data-say=working]:before{content:var(--tw-content);animation:2.4s ease-in-out infinite breathe}.data-\[say\=working\]\:before\:rounded-full[data-say=working]:before{content:var(--tw-content);border-radius:2147483647px}.data-\[say\=working\]\:before\:bg-slate[data-say=working]:before{content:var(--tw-content);background-color:var(--slate)}.data-\[say\=working\]\:before\:align-top[data-say=working]:before{content:var(--tw-content);vertical-align:top}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media (pointer:coarse){.pointer-coarse\:hidden{display:none}}@media (width<=820px){.phone\:flex{display:flex}.phone\:hidden{display:none}.phone\:max-h-none{max-height:none}.phone\:flex-none{flex:none}.phone\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.phone\:grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.phone\:flex-col{flex-direction:column}.phone\:items-stretch{align-items:stretch}.phone\:gap-0{gap:0}.phone\:gap-5{gap:calc(var(--spacing) * 5)}.phone\:px-0{padding-inline:0}.phone\:px-4{padding-inline:calc(var(--spacing) * 4)}.phone\:pr-0{padding-right:0}.phone\:pb-3{padding-bottom:calc(var(--spacing) * 3)}}.group-data-bare\/stage\:\[\&_\*\]\:pointer-events-none:is(:where(.group\/stage)[data-bare] *) *{pointer-events:none}.\[\&_\.replayer-mouse\]\:hidden .replayer-mouse{display:none}.\[\&_iframe\]\:pointer-events-none iframe{pointer-events:none}.\[\&_iframe\]\:block iframe{display:block}.\[\&_iframe\]\:border-0 iframe{border-style:var(--tw-border-style);border-width:0}.\[\&_kbd\]\:text-\[color-mix\(in_srgb\,var\(--faint\)_55\%\,var\(--soft\)\)\] kbd{color:var(--faint)}@supports (color:color-mix(in lab, red, red)){.\[\&_kbd\]\:text-\[color-mix\(in_srgb\,var\(--faint\)_55\%\,var\(--soft\)\)\] kbd{color:color-mix(in srgb,var(--faint) 55%,var(--soft))}}.\[\&_p\]\:text-\[12\.5px\] p{font-size:12.5px}.\[\&\:not\(\[data-touch\]\)\>\[data-finger\]\]\:hidden:not([data-touch])>[data-finger]{display:none}.\[\&\>\*\>button\:first-child\]\:pr-9>*>button:first-child{padding-right:calc(var(--spacing) * 9)}.\[\&\>p\:first-child\]\:pr-5>p:first-child{padding-right:calc(var(--spacing) * 5)}.\[\&\[data-touch\]\:not\(\[data-yours\]\)\>\[data-tag\]\]\:top-\[19px\][data-touch]:not([data-yours])>[data-tag]{top:19px}.\[\&\[data-touch\]\:not\(\[data-yours\]\)\>\[data-tag\]\]\:left-\[16px\][data-touch]:not([data-yours])>[data-tag]{left:16px}.\[\&\[data-touch\]\>svg\]\:invisible[data-touch]>svg,.\[\&\[data-yours\]\>\[data-finger\]\]\:invisible[data-yours]>[data-finger],.\[\&\[data-yours\]\>svg\]\:invisible[data-yours]>svg{visibility:hidden}}:root{--ground:#f4f4f5;--surface:#fff;--fg:#2b2e35;--soft:#6c707a;--faint:#a2a6ae;--line:#e4e5e8;--hover:#1e222c0b;--amber:#d9a23a;--amber-ink:#8a5f12;--green:#3c8a62;--slate:#6e7f9c;--edge:#14182214;--drop:#14182229;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ground:#18191c;--surface:#202227;--fg:#e3e4e7;--soft:#9a9ea7;--faint:#666a73;--line:#2c2e33;--hover:#ffffff0a;--amber:#e2b04f;--amber-ink:#e9c27a;--green:#78c59c;--slate:#9baac4;--edge:#ffffff24;--drop:#0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}@keyframes drop{0%{opacity:0;scale:.3}60%{opacity:1;scale:1.25}to{scale:1.12}}@keyframes glow{0%{background-color:color-mix(in srgb, var(--amber) 16%, transparent)}}@keyframes breathe{50%{opacity:.35}}@keyframes arrive{0%{opacity:0}}@keyframes pop{0%{box-shadow:inset 0 0 0 1.5px var(--amber);background-color:#0000;scale:1}40%{scale:1.35}to{scale:1}}@keyframes tick{0%{opacity:0;scale:.4}}
|
package/viewer/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Playthrough</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-D64VrgNj.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-gTfnUrcK.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
package/src/reporter-CECNk7aW.js
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { createHash } from "node:crypto";
|
|
4
|
-
// src/assets.ts
|
|
5
|
-
const assetsOf = (recording) => `assets/${recording}`;
|
|
6
|
-
const KINDS = /* @__PURE__ */ new Set([
|
|
7
|
-
"font",
|
|
8
|
-
"image",
|
|
9
|
-
"stylesheet"
|
|
10
|
-
]);
|
|
11
|
-
const ENDINGS = {
|
|
12
|
-
"font/woff2": ".woff2",
|
|
13
|
-
"font/woff": ".woff",
|
|
14
|
-
"font/ttf": ".ttf",
|
|
15
|
-
"font/otf": ".otf",
|
|
16
|
-
"image/png": ".png",
|
|
17
|
-
"image/jpeg": ".jpg",
|
|
18
|
-
"image/gif": ".gif",
|
|
19
|
-
"image/webp": ".webp",
|
|
20
|
-
"image/avif": ".avif",
|
|
21
|
-
"image/svg+xml": ".svg",
|
|
22
|
-
"image/x-icon": ".ico",
|
|
23
|
-
"image/vnd.microsoft.icon": ".ico",
|
|
24
|
-
"text/css": ".css"
|
|
25
|
-
};
|
|
26
|
-
function keepAssets(page, folder) {
|
|
27
|
-
const kept = {};
|
|
28
|
-
const keeping = [];
|
|
29
|
-
mkdirSync(join(folder, "assets"), { recursive: true });
|
|
30
|
-
page.on("response", (response) => {
|
|
31
|
-
const address = response.url();
|
|
32
|
-
if (!KINDS.has(response.request().resourceType()) || response.status() !== 200 || address in kept) return;
|
|
33
|
-
kept[address] = "";
|
|
34
|
-
keeping.push(response.body().then((bytes) => {
|
|
35
|
-
const type = response.headers()["content-type"]?.split(";")[0]?.trim() ?? "";
|
|
36
|
-
const file = `assets/${createHash("sha256").update(bytes).digest("hex").slice(0, 16)}${ENDINGS[type] ?? ""}`;
|
|
37
|
-
writeFileSync(join(folder, file), bytes);
|
|
38
|
-
kept[address] = file;
|
|
39
|
-
}).catch(() => void delete kept[address]));
|
|
40
|
-
});
|
|
41
|
-
return async () => {
|
|
42
|
-
await Promise.all(keeping);
|
|
43
|
-
return Object.fromEntries(Object.entries(kept).filter(([, file]) => file));
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
// src/reporter.ts
|
|
47
|
-
const RECORDING = "playthrough recording";
|
|
48
|
-
const READINGS = "playthrough readings";
|
|
49
|
-
const GLIMPSES = "playthrough glimpses";
|
|
50
|
-
const PICTURE = "playthrough picture";
|
|
51
|
-
const ASSETS = "playthrough assets";
|
|
52
|
-
const PERSON = "playthrough person";
|
|
53
|
-
const HANDS = "playthrough hands";
|
|
54
|
-
const ACTIONS = "playthrough actions";
|
|
55
|
-
const HOLD = 1500;
|
|
56
|
-
const readingsOf = (flow) => `readings/${flow.recording}`;
|
|
57
|
-
async function readingsOn(reviews, review, round, flow) {
|
|
58
|
-
const bytes = await reviews.file(review, round, readingsOf(flow));
|
|
59
|
-
return bytes ? JSON.parse(Buffer.from(bytes).toString()) : [];
|
|
60
|
-
}
|
|
61
|
-
const picturesOf = (flow) => `readings/${flow.recording.replace(/\.json$/, "")}`;
|
|
62
|
-
const glimpsesOf = (flow) => `${picturesOf(flow)}.glimpses.json`;
|
|
63
|
-
function firstLine(said) {
|
|
64
|
-
const line = said.replace(/\x1b\[[0-9;]*m/g, "").split("\n")[0]?.trim() ?? "";
|
|
65
|
-
return line.length > 300 ? `${line.slice(0, 300)}…` : line;
|
|
66
|
-
}
|
|
67
|
-
const BROKEN = /Page crashed|Target crashed|Target page, context or browser has been closed|net::ERR_CONNECTION_REFUSED/;
|
|
68
|
-
var Flows = class {
|
|
69
|
-
#folder;
|
|
70
|
-
#before;
|
|
71
|
-
#taken;
|
|
72
|
-
#ran = [];
|
|
73
|
-
constructor({ folder, before, taken }) {
|
|
74
|
-
this.#folder = folder;
|
|
75
|
-
this.#before = before;
|
|
76
|
-
this.#taken = taken;
|
|
77
|
-
}
|
|
78
|
-
onTestEnd(test, result) {
|
|
79
|
-
if (result.status === "skipped") return;
|
|
80
|
-
const where = {
|
|
81
|
-
file: test.location.file,
|
|
82
|
-
line: test.location.line
|
|
83
|
-
};
|
|
84
|
-
const recording = result.attachments.find((attachment) => attachment.name === RECORDING)?.body;
|
|
85
|
-
const read = {
|
|
86
|
-
readings: JSON.parse(result.attachments.find((attachment) => attachment.name === "playthrough readings")?.body?.toString() ?? "[]"),
|
|
87
|
-
glimpses: JSON.parse(result.attachments.find((attachment) => attachment.name === "playthrough glimpses")?.body?.toString() ?? "[]"),
|
|
88
|
-
pictures: result.attachments.filter((attachment) => attachment.name === PICTURE).map((attachment) => attachment.body),
|
|
89
|
-
assets: JSON.parse(result.attachments.find((attachment) => attachment.name === "playthrough assets")?.body?.toString() ?? "{}"),
|
|
90
|
-
actions: JSON.parse(result.attachments.find((attachment) => attachment.name === "playthrough actions")?.body?.toString() ?? "[]"),
|
|
91
|
-
hands: JSON.parse(result.attachments.find((attachment) => attachment.name === "playthrough hands")?.body?.toString() ?? "[]")
|
|
92
|
-
};
|
|
93
|
-
const steps = result.steps.filter((step) => step.category === "test.step");
|
|
94
|
-
const person = result.attachments.find((attachment) => attachment.name === PERSON)?.body?.toString();
|
|
95
|
-
const as = (made) => {
|
|
96
|
-
if (person) made.flow.person = person;
|
|
97
|
-
for (const step of made.flow.steps) if (step.person === made.flow.person) delete step.person;
|
|
98
|
-
return made;
|
|
99
|
-
};
|
|
100
|
-
if (result.status === "passed") return void (recording && this.#ran.push({
|
|
101
|
-
...where,
|
|
102
|
-
recorded: as(this.#flow(test.title, recording, read, steps))
|
|
103
|
-
}));
|
|
104
|
-
const stop = steps.at(-1);
|
|
105
|
-
const kept = stop?.error ? steps.slice(0, -1) : steps;
|
|
106
|
-
const said = (stop?.error ?? result.error)?.message ?? "";
|
|
107
|
-
const broken = BROKEN.test(said);
|
|
108
|
-
const why = firstLine(said);
|
|
109
|
-
const failed = {
|
|
110
|
-
flow: test.title,
|
|
111
|
-
...stop?.error && { at: stop.title },
|
|
112
|
-
...why && { why },
|
|
113
|
-
...broken && { broken }
|
|
114
|
-
};
|
|
115
|
-
if (!this.#before || broken || !recording || !stop || !kept.length) return void this.#ran.push({
|
|
116
|
-
...where,
|
|
117
|
-
failed
|
|
118
|
-
});
|
|
119
|
-
const until = stop.startTime.getTime() + (stop.error ? 0 : stop.duration);
|
|
120
|
-
const recorded = as(this.#flow(test.title, recording, read, kept, until));
|
|
121
|
-
if (stop.error) recorded.flow.stopped = stop.title;
|
|
122
|
-
this.#ran.push({
|
|
123
|
-
...where,
|
|
124
|
-
failed,
|
|
125
|
-
recorded
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
#flow(name, recording, read, steps, until) {
|
|
129
|
-
let events = JSON.parse(recording.toString());
|
|
130
|
-
if (until !== void 0) events = [...events.filter((event) => event.timestamp < until), {
|
|
131
|
-
type: 5,
|
|
132
|
-
data: {
|
|
133
|
-
tag: "end",
|
|
134
|
-
payload: {}
|
|
135
|
-
},
|
|
136
|
-
timestamp: until + HOLD
|
|
137
|
-
}];
|
|
138
|
-
const start = events[0].timestamp;
|
|
139
|
-
const length = seconds(events.at(-1).timestamp - start);
|
|
140
|
-
const actionsIn = (step, next) => read.actions.filter((done) => done >= step.startTime.getTime() && done < (next?.startTime.getTime() ?? until ?? Infinity)).map((done) => Math.min(length, seconds(done - start)));
|
|
141
|
-
const flow = {
|
|
142
|
-
name,
|
|
143
|
-
length,
|
|
144
|
-
steps: steps.map((step, i) => {
|
|
145
|
-
const actions = actionsIn(step, steps[i + 1]);
|
|
146
|
-
const person = read.hands.filter((hand) => hand.at <= step.startTime.getTime()).at(-1)?.person;
|
|
147
|
-
return {
|
|
148
|
-
title: step.title,
|
|
149
|
-
at: Math.min(length, seconds(step.startTime.getTime() - start)),
|
|
150
|
-
...actions.length && { actions },
|
|
151
|
-
...person && { person }
|
|
152
|
-
};
|
|
153
|
-
}),
|
|
154
|
-
recording: this.#fileFor(name)
|
|
155
|
-
};
|
|
156
|
-
const readings = read.readings.map((reading, i) => ({
|
|
157
|
-
...reading,
|
|
158
|
-
picture: `${picturesOf(flow)}/${i + 1}.png`
|
|
159
|
-
}));
|
|
160
|
-
const glimpses = read.glimpses.filter((glimpse) => glimpse.at <= length);
|
|
161
|
-
const files = [
|
|
162
|
-
flow.recording,
|
|
163
|
-
readingsOf(flow),
|
|
164
|
-
glimpsesOf(flow),
|
|
165
|
-
...readings.map((reading) => reading.picture),
|
|
166
|
-
assetsOf(flow.recording),
|
|
167
|
-
...new Set(Object.values(read.assets))
|
|
168
|
-
];
|
|
169
|
-
for (const folder of [picturesOf(flow), "assets"]) mkdirSync(join(this.#folder, folder), { recursive: true });
|
|
170
|
-
writeFileSync(join(this.#folder, flow.recording), JSON.stringify(events));
|
|
171
|
-
writeFileSync(join(this.#folder, readingsOf(flow)), JSON.stringify(readings));
|
|
172
|
-
writeFileSync(join(this.#folder, glimpsesOf(flow)), JSON.stringify(glimpses));
|
|
173
|
-
writeFileSync(join(this.#folder, assetsOf(flow.recording)), JSON.stringify(read.assets));
|
|
174
|
-
read.pictures.forEach((picture, i) => writeFileSync(join(this.#folder, readings[i].picture), picture));
|
|
175
|
-
return {
|
|
176
|
-
flow,
|
|
177
|
-
files
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
onEnd() {
|
|
181
|
-
const ran = this.#ran.sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line);
|
|
182
|
-
writeFileSync(join(this.#folder, "flows.json"), JSON.stringify({
|
|
183
|
-
recorded: ran.flatMap((run) => run.recorded ?? []),
|
|
184
|
-
failed: ran.flatMap((run) => run.failed ?? [])
|
|
185
|
-
}));
|
|
186
|
-
}
|
|
187
|
-
printsToStdio() {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
#fileFor(name) {
|
|
191
|
-
const base = name.toLowerCase().normalize("NFKD").replace(/['’]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "flow";
|
|
192
|
-
const taken = /* @__PURE__ */ new Set([...this.#taken, ...this.#ran.map((run) => run.recorded?.flow.recording)]);
|
|
193
|
-
for (let n = 1;; n++) {
|
|
194
|
-
const file = n === 1 ? `${base}.json` : `${base}-${n}.json`;
|
|
195
|
-
if (!taken.has(file)) return file;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
const seconds = (ms) => Math.round(Math.max(0, ms)) / 1e3;
|
|
200
|
-
export { HANDS as a, PICTURE as c, firstLine as d, glimpsesOf as f, keepAssets as g, seconds as h, GLIMPSES as i, READINGS as l, readingsOn as m, ASSETS as n, HOLD as o, readingsOf as p, Flows as r, PERSON as s, ACTIONS as t, RECORDING as u };
|