@mkbabb/value.js 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/easing.d.ts +112 -0
- package/dist/src/index.d.ts +29 -0
- package/dist/src/math.d.ts +9 -0
- package/dist/src/parsing/color.d.ts +26 -0
- package/dist/src/parsing/index.d.ts +31 -0
- package/dist/src/parsing/math.d.ts +28 -0
- package/dist/src/parsing/units.d.ts +18 -0
- package/dist/src/parsing/utils.d.ts +24 -0
- package/dist/src/transform/decompose.d.ts +61 -0
- package/dist/src/units/color/colorFilter.d.ts +7 -0
- package/dist/src/units/color/constants.d.ts +992 -0
- package/dist/src/units/color/gamut.d.ts +60 -0
- package/dist/src/units/color/index.d.ts +171 -0
- package/dist/src/units/color/matrix.d.ts +28 -0
- package/dist/src/units/color/normalize.d.ts +10 -0
- package/dist/src/units/color/utils.d.ts +77 -0
- package/dist/src/units/constants.d.ts +33 -0
- package/dist/src/units/index.d.ts +51 -0
- package/dist/src/units/normalize.d.ts +9 -0
- package/dist/src/units/utils.d.ts +17 -0
- package/dist/src/utils.d.ts +28 -0
- package/dist/value.d.ts +2 -0
- package/dist/value.js +5238 -0
- package/package.json +1 -1
- package/dist/CNAME +0 -1
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/Katex-ClrxLHTj.js +0 -131
- package/dist/assets/Katex-rb5Khf8S.css +0 -1
- package/dist/assets/favicon-BpOvZXpk.svg +0 -20
- package/dist/assets/hsl-hvHpFpJT.js +0 -1
- package/dist/assets/hsv-Dw3FShnj.js +0 -1
- package/dist/assets/hwb-pA6JoiNj.js +0 -1
- package/dist/assets/index-Q19pIqw1.js +0 -32
- package/dist/assets/index-VnEkwzsm.css +0 -1
- package/dist/assets/kelvin-Csjui27y.js +0 -1
- package/dist/assets/lab-DAj67vs8.js +0 -1
- package/dist/assets/lch-D_dY1vUG.js +0 -1
- package/dist/assets/oklab-BPM7MOIw.js +0 -1
- package/dist/assets/oklch-DwTrS_34.js +0 -1
- package/dist/assets/rgb-BLbQuf-A.js +0 -1
- package/dist/assets/vendor-highlight-sMWp9TLU.js +0 -3
- package/dist/assets/vendor-katex-Dehg5p_Y.js +0 -261
- package/dist/assets/vendor-prettier-wO8BBsoP.js +0 -166
- package/dist/assets/xyz-CX5zPyPG.js +0 -3
- package/dist/index.html +0 -18
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap";.dark-mode-toggle-button[data-v-008bb0b9]{cursor:pointer;border:0;opacity:.8;padding:0;border-radius:50%;position:relative;isolation:isolate;background:0;transition:opacity .2s ease,transform .2s ease,background .2s ease;z-index:999}.dark-mode-toggle-button svg[data-v-008bb0b9]{fill:hsl(var(--foreground));width:100%;height:100%}.dark-mode-toggle-button[data-v-008bb0b9]:hover,.dark-mode-toggle-button[data-v-008bb0b9]:focus{outline:none;opacity:1;transform:scale(1.25);background:#80808026}.dark-mode-toggle-button[data-v-008bb0b9]:before{animation:pulseToDark-008bb0b9 .65s ease-out}.toggle-sun[data-v-008bb0b9]{transform-origin:center center;transition:transform .75s cubic-bezier(.11,.14,.29,1.5)}.toggle-circle[data-v-008bb0b9]{transform:translate(0);transition:transform .5s ease-out}.dark .dark-mode-toggle-button[data-v-008bb0b9]:before{animation:pulseToLight-008bb0b9 .65s ease-out}.dark .toggle-sun[data-v-008bb0b9]{transform:rotate(.5turn)}.dark .toggle-circle[data-v-008bb0b9]{transform:translate(-15%)}@keyframes pulseToLight-008bb0b9{0%{transform:scale(100);opacity:.5}10%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(1)}}@keyframes pulseToDark-008bb0b9{0%{transform:scale(0);opacity:.5}10%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(1)}}.confirm-overlay-enter-active[data-v-e3549496],.confirm-overlay-leave-active[data-v-e3549496]{transition:opacity .2s ease}.confirm-overlay-enter-from[data-v-e3549496],.confirm-overlay-leave-to[data-v-e3549496]{opacity:0}.confirm-panel-enter-active[data-v-e3549496]{transition:opacity .2s ease,transform .2s ease}.confirm-panel-leave-active[data-v-e3549496]{transition:opacity .15s ease,transform .15s ease}.confirm-panel-enter-from[data-v-e3549496],.confirm-panel-leave-to[data-v-e3549496]{opacity:0;transform:scale(.95)}.swatch-floating-panel[data-v-5cf34c94]{position:fixed;z-index:50;display:flex;align-items:center;gap:.25rem;padding:.375rem;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;transform:translate(-50%);pointer-events:auto;animation:swatch-panel-in-5cf34c94 .15s ease-out}@keyframes swatch-panel-in-5cf34c94{0%{opacity:0;transform:translate(-50%) translateY(4px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.card-menu-panel[data-v-4c832870]{position:fixed;z-index:50;display:flex;flex-direction:column;min-width:160px;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 4px 12px -2px #00000026,0 2px 4px -2px #0000001a;transform:translate(-100%);pointer-events:auto;animation:card-menu-in-4c832870 .15s ease-out;overflow:hidden}.card-menu-item[data-v-4c832870]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-family:Fraunces,sans-serif;font-size:.875rem;cursor:pointer;transition:background-color .15s ease;width:100%;text-align:left}.card-menu-item[data-v-4c832870]:hover{background-color:hsl(var(--accent))}@keyframes card-menu-in-4c832870{0%{opacity:0;filter:blur(4px);transform:translate(-100%) scale(.96)}to{opacity:1;filter:blur(0);transform:translate(-100%) scale(1)}}.swatch-floating-panel[data-v-4c832870]{position:fixed;z-index:50;display:flex;align-items:center;gap:.25rem;padding:.375rem;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;transform:translate(-50%);pointer-events:auto;animation:swatch-panel-in-4c832870 .15s ease-out}@keyframes swatch-panel-in-4c832870{0%{opacity:0;filter:blur(4px);transform:translate(-50%) scale(.96)}to{opacity:1;filter:blur(0);transform:translate(-50%) scale(1)}}.featured-badge[data-v-4c832870]{background:linear-gradient(90deg,var(--color-gold),var(--color-gold-light),var(--color-gold),var(--color-gold-light),var(--color-gold));background-size:300% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;border-color:var(--color-gold);animation:golden-text-shimmer-4c832870 4s ease-in-out infinite}.featured-badge[data-v-4c832870] svg{stroke:var(--color-gold);filter:drop-shadow(0 0 1px rgba(212,175,55,.4))}@keyframes golden-text-shimmer-4c832870{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.prune-result-enter-active[data-v-e38e6d01],.prune-result-leave-active[data-v-e38e6d01]{transition:opacity .2s ease}.prune-result-enter-from[data-v-e38e6d01],.prune-result-leave-to[data-v-e38e6d01]{opacity:0}[data-v-eb134258] button[role=tab][data-state=active]{color:var(--active-tab-color)!important;box-shadow:none!important;border-bottom:2px solid var(--active-tab-color);border-radius:0}.tabs-scroll-mask[data-v-a54f786c]{mask-image:linear-gradient(to right,transparent,black .75rem,black calc(100% - .75rem),transparent);-webkit-mask-image:linear-gradient(to right,transparent,black .75rem,black calc(100% - .75rem),transparent);scrollbar-width:none}.tabs-scroll-mask[data-v-a54f786c]::-webkit-scrollbar{display:none}[data-v-a54f786c] button[role=tab][data-state=active]{color:var(--active-tab-color)!important;box-shadow:none!important;border-bottom:2px solid var(--active-tab-color);border-radius:0}.palette-dialog button.absolute{top:.875rem;right:.5rem;padding:.125rem;opacity:.35;transition:opacity .15s ease}.palette-dialog button.absolute:hover{opacity:.7}.palette-dialog button.absolute svg{width:.5rem;height:.5rem}.hero-blob-shadow-wrapper[data-v-829adee9]{filter:drop-shadow(3px 3px 0 color-mix(in srgb,var(--blob-color, transparent) 20%,hsl(var(--foreground))));position:relative;overflow:visible;cursor:pointer;transition:filter .3s ease}.hero-blob-shadow-wrapper[data-v-829adee9]:hover{filter:drop-shadow(4px 4px 0 color-mix(in srgb,var(--blob-color, transparent) 25%,hsl(var(--foreground))))}.hero-blob-goo[data-v-829adee9]{filter:url(#gooey-filter);overflow:visible;position:relative}.hero-blob[data-v-829adee9]{filter:url(#watercolor-filter);overflow:visible;position:relative}.hero-blob[data-v-829adee9]:hover{transform:none}.spectrum-picker[data-v-7bbc1944]{border-radius:.375rem;transition:box-shadow .25s;overflow:visible;box-shadow:0 0 #0000}.spectrum-picker[data-v-7bbc1944]:hover{box-shadow:8px 8px 0 0 var(--spectrum-shadow,transparent)}@supports (color:color-mix(in lab,red,red)){.spectrum-picker[data-v-7bbc1944]:hover{box-shadow:8px 8px color-mix(in srgb,var(--spectrum-shadow,transparent) 50%,black)}}.spectrum-dot[data-v-7bbc1944]{border:2px solid var(--dot-border,hsl(var(--background)));filter:url(#watercolor-filter);width:1.75rem;height:1.75rem;box-shadow:0 1px 4px #0000004d}.spectrum-dot[data-v-7bbc1944]:hover{transform:none}.color-input[data-v-5a9d51d8]{border-color:hsl(var(--input));transition:border-color .2s,box-shadow .2s}.color-input-error[data-v-5a9d51d8]{box-shadow:0 0 0 2px hsl(var(--destructive) / .25)}.color-input-mode-flash[data-v-5a9d51d8]{animation:.3s ease-out input-mode-flash-5a9d51d8}@keyframes input-mode-flash-5a9d51d8{0%{opacity:.6;transform:scaleX(.97)}to{opacity:1;transform:scaleX(1)}}.color-input:empty[data-placeholder][data-v-5a9d51d8]:before{content:attr(data-placeholder);color:hsl(var(--muted-foreground));pointer-events:none}.error-badge[data-v-5a9d51d8]{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));white-space:nowrap;pointer-events:none;font-size:.65rem;line-height:1;font-family:var(--font-sans);border-radius:.25rem;padding:.2rem .4rem;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.error-pop-enter-active[data-v-5a9d51d8]{transition:opacity .15s,transform .15s}.error-pop-leave-active[data-v-5a9d51d8]{transition:opacity .3s,transform .3s}.error-pop-enter-from[data-v-5a9d51d8],.error-pop-leave-to[data-v-5a9d51d8]{opacity:0;transform:translateY(-50%)scale(.85)}.action-icon[data-v-c5b60821]:hover{transform:scale(1.25);stroke:var(--hover-color)}.action-flash[data-v-c5b60821]{animation:action-pulse-c5b60821 .4s cubic-bezier(.4,0,.2,1) forwards}.action-rotate[data-v-c5b60821]{animation:action-pulse-c5b60821 .4s cubic-bezier(.4,0,.2,1) forwards,action-spin-c5b60821 .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes action-pulse-c5b60821{0%{stroke:var(--flash-color, currentColor);stroke-width:2.75;transform:scale(1.3)}50%{stroke:var(--flash-color, currentColor);stroke-width:2.5;transform:scale(1.15)}to{stroke:currentColor;stroke-width:2;transform:scale(1)}}@keyframes action-spin-c5b60821{0%{transform:rotate(0) scale(1.3)}to{transform:rotate(-360deg) scale(1)}}.debug-overlay[data-v-94261020]{position:fixed;bottom:8px;left:8px;z-index:99999;width:280px;max-height:35vh;display:flex;flex-direction:column;background:#000000eb;color:#e0e0e0;font-family:SF Mono,Fira Code,monospace;font-size:10px;line-height:1.3;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.debug-collapsed[data-v-94261020]{width:auto;max-height:none}.debug-header[data-v-94261020]{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#ffffff14;cursor:pointer;-webkit-user-select:none;user-select:none;pointer-events:auto;touch-action:manipulation}.debug-title[data-v-94261020]{font-weight:700;flex:1}.debug-frozen[data-v-94261020]{color:#f44;font-weight:700;animation:blink-94261020 .5s infinite}.debug-copied[data-v-94261020]{color:#4caf50;font-weight:600}@keyframes blink-94261020{50%{opacity:.3}}.debug-toggle[data-v-94261020]{font-size:14px;font-weight:700}.debug-section[data-v-94261020]{padding:4px 10px}.debug-section-title[data-v-94261020]{font-weight:700;color:#888;text-transform:uppercase;font-size:9px;letter-spacing:.5px;margin-bottom:2px}.debug-gauge[data-v-94261020]{display:flex;justify-content:space-between;padding:1px 0}.debug-key[data-v-94261020]{color:#aaa}.debug-val[data-v-94261020]{color:#fff;font-weight:600}.debug-val-true[data-v-94261020]{color:#4caf50}.debug-val-false[data-v-94261020]{color:#666}.debug-scroll[data-v-94261020]{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:none}.debug-actions[data-v-94261020]{flex-shrink:0;display:flex;gap:4px;padding:6px 10px;pointer-events:auto;border-top:1px solid rgba(255,255,255,.1);background:#000000f2}.debug-btn[data-v-94261020]{flex:1;padding:6px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff14;color:#e0e0e0;font-size:10px;font-weight:600;cursor:pointer;touch-action:manipulation}.debug-btn-danger[data-v-94261020]{background:#ff3c3c40;border-color:#ff3c3c66;color:#f88}.debug-btn-copy[data-v-94261020]{background:#3c8cff40;border-color:#3c8cff66;color:#8bf}.debug-log-section[data-v-94261020],.debug-log[data-v-94261020]{pointer-events:none}.debug-event[data-v-94261020]{display:flex;gap:4px;padding:1px 0;border-bottom:1px solid rgba(255,255,255,.04);flex-wrap:wrap}.debug-ts[data-v-94261020]{color:#666;min-width:40px}.debug-etype[data-v-94261020]{color:#8bc4ff;min-width:60px;font-weight:600}.debug-pid[data-v-94261020]{color:#b388ff;min-width:24px}.debug-cap[data-v-94261020]{color:#f44;font-weight:700}.debug-tgt[data-v-94261020]{color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.debug-extra[data-v-94261020]{color:#ffcc80}.debug-event-freeze[data-v-94261020]{background:#ff282833}.debug-event-cancel[data-v-94261020]{background:#ff3c3c1f}.debug-event-force[data-v-94261020]{background:#ffb40026}.debug-event-lost[data-v-94261020]{background:#ff96001a}.debug-event-down[data-v-94261020]{background:#3cb4ff14}.debug-event-up[data-v-94261020]{background:#3cff3c14}.toggle-btn[data-v-f8dfeafd]:hover{stroke:var(--toggle-hover-color)}.toggle-icon-enter-active[data-v-f8dfeafd],.toggle-icon-leave-active[data-v-f8dfeafd]{transition:opacity .12s,transform .12s}.toggle-icon-enter-from[data-v-f8dfeafd],.toggle-icon-leave-to[data-v-f8dfeafd]{opacity:0;transform:scale(.7)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-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;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@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-50:oklch(97.1% .013 17.38);--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-yellow-500:oklch(79.5% .184 86.047);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-600:oklch(59.2% .249 .584);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--spacing:.25rem;--breakpoint-lg:64rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--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-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--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-spin:spin 1s linear infinite;--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);--radius:.5rem;--color-border:hsl(var(--border));--color-input:hsl(var(--input));--color-ring:hsl(var(--ring));--color-background:hsl(var(--background));--color-foreground:hsl(var(--foreground));--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-secondary:hsl(var(--secondary));--color-secondary-foreground:hsl(var(--secondary-foreground));--color-muted:hsl(var(--muted));--color-muted-foreground:hsl(var(--muted-foreground));--color-accent:hsl(var(--accent));--color-accent-foreground:hsl(var(--accent-foreground));--color-destructive:hsl(var(--destructive));--color-destructive-foreground:hsl(var(--destructive-foreground));--color-popover:hsl(var(--popover));--color-popover-foreground:hsl(var(--popover-foreground));--color-card:hsl(var(--card));--color-card-foreground:hsl(var(--card-foreground));--color-shadow:hsl(var(--shadow));--color-gold:#d4af37;--color-gold-light:#f5e6a3}}@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,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]){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}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!absolute{position:absolute!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[60\%\]{top:60%}.top-full{top:100%}.top-px{top:1px}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-4{bottom:calc(var(--spacing) * -4)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-left-12{left:calc(var(--spacing) * -12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.isolate{isolation:isolate}.z-1{z-index:1}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[-2\]{z-index:-2}.z-\[1\]{z-index:1}.z-\[100\]{z-index:100}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-0{margin-inline:calc(var(--spacing) * 0)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.\!my-4{margin-block:calc(var(--spacing) * 4)!important}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-8{margin-block:calc(var(--spacing) * 8)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.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)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-auto{margin-top:auto}.\!mr-2{margin-right:calc(var(--spacing) * 2)!important}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.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-6{margin-bottom:calc(var(--spacing) * 6)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!hidden{display:none!important}.\!inline-flex{display:inline-flex!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-0{height:calc(var(--spacing) * 0)}.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-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-\[--reka-navigation-menu-viewport-height\]{height:--reka-navigation-menu-viewport-height}.h-\[--reka-select-trigger-height\]{height:--reka-select-trigger-height}.h-\[0\.75em\]{height:.75em}.h-\[1px\]{height:1px}.h-\[26px\]{height:26px}.h-\[400px\]{height:400px}.h-\[min\(90vh\,820px\)\]{height:min(90vh,820px)}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-\[120px\]{min-height:120px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[0\.75em\]{width:.75em}.w-\[1px\]{width:1px}.w-\[26px\]{width:26px}.w-\[100px\]{width:100px}.w-\[calc\(100\%-1rem\)\]{width:calc(100% - 1rem)}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\[34rem\]{max-width:34rem}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-screen-lg{max-width:var(--breakpoint-lg)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\[--reka-select-trigger-width\]{min-width:--reka-select-trigger-width}.min-w-\[17rem\]{min-width:17rem}.min-w-\[180px\]{min-width:180px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-top-right{transform-origin:100% 0}.-translate-x-1\/2{--tw-translate-x: -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)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);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)}.scale-\[1\.8\]{scale:1.8}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.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-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.justify-items-end{justify-items:end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.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-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * 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-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-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)))}.gap-x-1{column-gap:calc(var(--spacing) * 1)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:var(--radius)}.rounded-\[inherit\]{border-radius:inherit}.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-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:var(--radius-sm)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{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-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-blue-500{border-color:var(--color-blue-500)}.border-border{border-color:var(--color-border)}.border-border\/50{border-color:color-mix(in srgb,hsl(var(--border)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border) 50%,transparent)}}.border-destructive{border-color:var(--color-destructive)}.border-destructive\/50{border-color:color-mix(in srgb,hsl(var(--destructive)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--color-destructive) 50%,transparent)}}.border-gold{border-color:var(--color-gold)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-700\/15{border-color:#36415326}@supports (color:color-mix(in lab,red,red)){.border-gray-700\/15{border-color:color-mix(in oklab,var(--color-gray-700) 15%,transparent)}}.border-input{border-color:var(--color-input)}.border-muted-foreground{border-color:var(--color-muted-foreground)}.border-primary{border-color:var(--color-primary)}.border-primary\/30{border-color:color-mix(in srgb,hsl(var(--primary)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.border-red-500{border-color:var(--color-red-500)}.border-secondary{border-color:var(--color-secondary)}.border-transparent{border-color:#0000}.border-yellow-500{border-color:var(--color-yellow-500)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--color-accent)}.bg-background{background-color:var(--color-background)}.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\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-muted{background-color:var(--color-muted)}.bg-muted\/30{background-color:color-mix(in srgb,hsl(var(--muted)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--color-muted) 30%,transparent)}}.bg-muted\/50{background-color:color-mix(in srgb,hsl(var(--muted)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary-foreground{background-color:var(--color-primary-foreground)}.bg-primary\/5{background-color:color-mix(in srgb,hsl(var(--primary)) 5%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary) 5%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-red-500{fill:var(--color-red-500)}.stroke-foreground{stroke:var(--color-foreground)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.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)}.px-8{padding-inline:calc(var(--spacing) * 8)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.65rem\]{font-size:.65rem}.leading-none{--tw-leading:1;line-height:1}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-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-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-\[\#daa520\]{color:#daa520}.text-blue-600{color:var(--color-blue-600)}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:color-mix(in srgb,hsl(var(--foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-gold{color:var(--color-gold)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-pink-600{color:var(--color-pink-600)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-primary\/40{color:color-mix(in srgb,hsl(var(--primary)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-primary\/40{color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.decoration-dashed{text-decoration-style:dashed}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_-4px_12px_-4px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow:0 -4px 12px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[8px_8px_0px_0px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:8px 8px 0px 0px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary\/50{--tw-ring-color:color-mix(in srgb, hsl(var(--primary)) 50%, transparent)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/50{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-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{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-\[opacity\,transform\]{transition-property:opacity,transform;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;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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-shadow{transition-property:box-shadow;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{--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)}.fade-in-0{--tw-enter-opacity:0}.fade-in-80{--tw-enter-opacity:.8}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[grid-area\:1\/1\]{grid-area:1/1}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in srgb,hsl(var(--muted)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *){border-color:color-mix(in oklab,var(--color-muted) 40%,transparent)}}.group-\[\.destructive\]\:text-red-300:is(:where(.group).destructive *){color:var(--color-red-300)}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--color-muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--color-primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--color-muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--color-primary-foreground)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--color-border)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--color-background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--color-foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.first\:pt-0:first-child{padding-top:calc(var(--spacing) * 0)}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}@media(hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:-rotate-180:hover{rotate:-180deg}.hover\:border-primary\/60:hover{border-color:color-mix(in srgb,hsl(var(--primary)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/60:hover{border-color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-accent\/50:hover{background-color:color-mix(in srgb,hsl(var(--accent)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:bg-destructive\/80:hover{background-color:color-mix(in srgb,hsl(var(--destructive)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--color-destructive) 80%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:color-mix(in srgb,hsl(var(--destructive)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-muted\/50:hover{background-color:color-mix(in srgb,hsl(var(--muted)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary\/80:hover{background-color:color-mix(in srgb,hsl(var(--primary)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--color-primary) 80%,transparent)}}.hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,hsl(var(--primary)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:bg-secondary:hover{background-color:var(--color-secondary)}.hover\:bg-secondary\/80:hover{background-color:color-mix(in srgb,hsl(var(--secondary)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-muted-foreground:hover{color:var(--color-muted-foreground)}.hover\:text-primary-foreground:hover{color:var(--color-primary-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:transition-colors:hover{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))}.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:color-mix(in srgb,hsl(var(--destructive)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover{border-color:color-mix(in oklab,var(--color-destructive) 30%,transparent)}}.group-\[\.destructive\]\:hover\:bg-destructive:is(:where(.group).destructive *):hover{background-color:var(--color-destructive)}.group-\[\.destructive\]\:hover\:text-destructive-foreground:is(:where(.group).destructive *):hover{color:var(--color-destructive-foreground)}.group-\[\.destructive\]\:hover\:text-red-50:is(:where(.group).destructive *):hover{color:var(--color-red-50)}}.focus\:relative:focus{position:relative}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-primary:focus{background-color:var(--color-primary)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-transparent:focus{--tw-ring-color:transparent}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.group-\[\.destructive\]\:focus\:ring-destructive:is(:where(.group).destructive *):focus{--tw-ring-color:var(--color-destructive)}.group-\[\.destructive\]\:focus\:ring-red-400:is(:where(.group).destructive *):focus{--tw-ring-color:var(--color-red-400)}.group-\[\.destructive\]\:focus\:ring-offset-red-600:is(:where(.group).destructive *):focus{--tw-ring-offset-color:var(--color-red-600)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--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-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[active\]\:bg-accent\/50[data-active]{background-color:color-mix(in srgb,hsl(var(--accent)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.data-\[active\]\:bg-accent\/50[data-active]{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:text-muted-foreground[data-disabled]{color:var(--color-muted-foreground)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-accent[data-highlighted]{background-color:var(--color-accent)}.data-\[highlighted\]\:text-accent-foreground[data-highlighted]{color:var(--color-accent-foreground)}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:calc(52*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:calc(52*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[outside-month\]\:pointer-events-none[data-outside-month]{pointer-events:none}.data-\[outside-month\]\:text-muted-foreground[data-outside-month]{color:var(--color-muted-foreground)}.data-\[outside-month\]\:opacity-50[data-outside-month]{opacity:.5}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[selected\]\:bg-primary[data-selected]{background-color:var(--color-primary)}.data-\[selected\]\:text-primary-foreground[data-selected]{color:var(--color-primary-foreground)}.data-\[selected\]\:opacity-100[data-selected]{opacity:1}@media(hover:hover){.data-\[selected\]\:hover\:bg-primary[data-selected]:hover{background-color:var(--color-primary)}.data-\[selected\]\:hover\:text-primary-foreground[data-selected]:hover{color:var(--color-primary-foreground)}}.data-\[selected\]\:focus\:bg-primary[data-selected]:focus{background-color:var(--color-primary)}.data-\[selected\]\:focus\:text-primary-foreground[data-selected]:focus{color:var(--color-primary-foreground)}.data-\[selection-end\]\:bg-primary[data-selection-end]{background-color:var(--color-primary)}.data-\[selection-end\]\:text-primary-foreground[data-selection-end]{color:var(--color-primary-foreground)}@media(hover:hover){.data-\[selection-end\]\:hover\:bg-primary[data-selection-end]:hover{background-color:var(--color-primary)}.data-\[selection-end\]\:hover\:text-primary-foreground[data-selection-end]:hover{color:var(--color-primary-foreground)}}.data-\[selection-end\]\:focus\:bg-primary[data-selection-end]:focus{background-color:var(--color-primary)}.data-\[selection-end\]\:focus\:text-primary-foreground[data-selection-end]:focus{color:var(--color-primary-foreground)}.data-\[selection-start\]\:bg-primary[data-selection-start]{background-color:var(--color-primary)}.data-\[selection-start\]\:text-primary-foreground[data-selection-start]{color:var(--color-primary-foreground)}@media(hover:hover){.data-\[selection-start\]\:hover\:bg-primary[data-selection-start]:hover{background-color:var(--color-primary)}.data-\[selection-start\]\:hover\:text-primary-foreground[data-selection-start]:hover{color:var(--color-primary-foreground)}}.data-\[selection-start\]\:focus\:bg-primary[data-selection-start]:focus{background-color:var(--color-primary)}.data-\[selection-start\]\:focus\:text-primary-foreground[data-selection-start]:focus{color:var(--color-primary-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=active\]\:ring-2[data-state=active]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=active\]\:ring-ring[data-state=active]{--tw-ring-color:var(--color-ring)}.data-\[state\=active\]\:ring-offset-2[data-state=active]{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:animate-collapsible-up[data-state=closed]{animation:collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:.8}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50% }.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100% }.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48% }.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--color-accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-collapsible-down[data-state=open]{animation:collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in srgb,hsl(var(--accent)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--color-secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50% }.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48% }.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100% }.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--color-muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}.data-\[state\=visible\]\:animate-in[data-state=visible]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=end\]\:translate-x-\[--reka-toast-swipe-end-x\][data-swipe=end]{--tw-translate-x:--reka-toast-swipe-end-x;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[swipe\=move\]\:translate-x-\[--reka-toast-swipe-move-x\][data-swipe=move]{--tw-translate-x:--reka-toast-swipe-move-x;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[unavailable\]\:text-destructive-foreground[data-unavailable]{color:var(--color-destructive-foreground)}.data-\[unavailable\]\:line-through[data-unavailable]{text-decoration-line:line-through}@media(min-width:40rem){.sm\:top-auto{top:auto}.sm\:right-0{right:calc(var(--spacing) * 0)}.sm\:bottom-0{bottom:calc(var(--spacing) * 0)}.sm\:-mx-6{margin-inline:calc(var(--spacing) * -6)}.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sm\:h-10{height:calc(var(--spacing) * 10)}.sm\:h-12{height:calc(var(--spacing) * 12)}.sm\:w-10{width:calc(var(--spacing) * 10)}.sm\:w-12{width:calc(var(--spacing) * 12)}.sm\:w-\[min\(95vw\,1050px\)\]{width:min(95vw,1050px)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-x-2{column-gap:calc(var(--spacing) * 2)}.sm\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.sm\:gap-y-0{row-gap:calc(var(--spacing) * 0)}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-4{padding-top:calc(var(--spacing) * 4)}.sm\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.sm\:text-left{text-align:left}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100% }}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:w-\[--reka-navigation-menu-viewport-width\]{width:--reka-navigation-menu-viewport-width}.md\:w-auto{width:auto}.md\:w-full{width:100%}.md\:max-w-\[420px\]{max-width:420px}}@media(min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:mx-0{margin-inline:calc(var(--spacing) * 0)}.lg\:aspect-\[4\/3\]{aspect-ratio:4/3}.lg\:h-auto{height:auto}.lg\:h-screen{height:100vh}.lg\:max-h-\[220px\]{max-height:220px}.lg\:max-h-screen{max-height:100vh}.lg\:min-h-0{min-height:calc(var(--spacing) * 0)}.lg\:max-w-none{max-width:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-rows-\[1fr\]{grid-template-rows:1fr}.lg\:overflow-hidden{overflow:hidden}.lg\:rounded-lg{border-radius:var(--radius-lg)}.lg\:border-4{border-style:var(--tw-border-style);border-width:4px}}.dark\:border-blue-400:where(.dark,.dark *){border-color:var(--color-blue-400)}.dark\:border-destructive:where(.dark,.dark *){border-color:var(--color-destructive)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-muted\/30:where(.dark,.dark *){background-color:color-mix(in srgb,hsl(var(--muted)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-muted\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-muted) 30%,transparent)}}.dark\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-pink-400:where(.dark,.dark *){color:var(--color-pink-400)}.dark\:shadow-gray-700:where(.dark,.dark *){--tw-shadow-color:oklch(37.3% .034 259.733)}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-gray-700:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, var(--color-gray-700) var(--tw-shadow-alpha), transparent)}}@media(hover:hover){.dark\:hover\:bg-muted\/60:where(.dark,.dark *):hover{background-color:color-mix(in srgb,hsl(var(--muted)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/60:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.dark\:hover\:text-gray-600:where(.dark,.dark *):hover{color:var(--color-gray-600)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--color-muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[data-selected\]\)\]\:rounded-md:has([data-selected]){border-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\)\]\:bg-accent:has([data-selected]){background-color:var(--color-accent)}.first\:\[\&\:has\(\[data-selected\]\)\]\:rounded-l-md:first-child:has([data-selected]){border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:\[\&\:has\(\[data-selected\]\)\]\:rounded-r-md:last-child:has([data-selected]){border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\[data-outside-month\]\)\]\:bg-accent\/50:has([data-selected][data-outside-month]){background-color:color-mix(in srgb,hsl(var(--accent)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.\[\&\:has\(\[data-selected\]\[data-outside-month\]\)\]\:bg-accent\/50:has([data-selected][data-outside-month]){background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.\[\&\:has\(\[data-selected\]\[data-selection-end\]\)\]\:rounded-r-md:has([data-selected][data-selection-end]){border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\[data-selection-start\]\)\]\:rounded-l-md:has([data-selected][data-selection-start]){border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}.\[\&\:nth-child\(2\)\]\:rounded-t-lg:nth-child(2){border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.\[\&\>_div\]\:grid>div{display:grid}.\[\&\>\[data-slot\=input\]\]\:has-\[\[data-slot\=decrement\]\]\:pl-5>[data-slot=input]:has([data-slot=decrement]){padding-left:calc(var(--spacing) * 5)}.\[\&\>\[data-slot\=input\]\]\:has-\[\[data-slot\=increment\]\]\:pr-5>[data-slot=input]:has([data-slot=increment]){padding-right:calc(var(--spacing) * 5)}.\[\&\>button\:last-child\]\:hidden>button:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:text-destructive>svg{color:var(--color-destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--color-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-orientation\=vertical\]\]\:h-px[data-orientation=vertical]{height:1px}.\[\&\[data-orientation\=vertical\]\]\:w-full[data-orientation=vertical]{width:100%}.\[\&\[data-orientation\=vertical\]\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.\[\&\[data-orientation\=vertical\]\]\:after\:h-1[data-orientation=vertical]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.\[\&\[data-orientation\=vertical\]\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.\[\&\[data-orientation\=vertical\]\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\[data-orientation\=vertical\]\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{rotate:90deg}.\[\&\[data-outside-month\]\[data-selected\]\]\:bg-accent\/50[data-outside-month][data-selected]{background-color:color-mix(in srgb,hsl(var(--accent)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.\[\&\[data-outside-month\]\[data-selected\]\]\:bg-accent\/50[data-outside-month][data-selected]{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.\[\&\[data-outside-month\]\[data-selected\]\]\:text-muted-foreground[data-outside-month][data-selected]{color:var(--color-muted-foreground)}.\[\&\[data-outside-month\]\[data-selected\]\]\:opacity-30[data-outside-month][data-selected]{opacity:.3}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}.\[\&\[data-today\]\:not\(\[data-selected\]\)\]\:bg-accent[data-today]:not([data-selected]){background-color:var(--color-accent)}.\[\&\[data-today\]\:not\(\[data-selected\]\)\]\:text-accent-foreground[data-today]:not([data-selected]){color:var(--color-accent-foreground)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--ring:222.2 84% 4.9%;--shadow:0, 0%, 65%}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--primary:210 40% 98%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--ring:212.7 26.8% 83.9%;--shadow:0, 0%, 45%}.admin-golden-text{background-image:linear-gradient(to right,var(--color-gold),var(--color-gold-light),var(--color-gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.admin-golden{position:relative}.admin-golden:after{content:"";border-radius:inherit;pointer-events:none;mix-blend-mode:overlay;background:linear-gradient(135deg,#0000 20%,#fac54766 40%,#ffd4b899,#fac54766 60%,#0000 80%) 0 0/200% 200%;background:linear-gradient(135deg,#0000 20%,#fac54766 40%,color(xyz 0.785 0.708 0.357 / 0.6),#fac54766 60%,#0000 80%) 0 0/200% 200%;animation:3s ease-in-out infinite golden-shimmer;position:absolute;inset:-2px}@keyframes golden-shimmer{0%,to{background-position:100% 100%}50%{background-position:0 0}}.pastel-rainbow-text{-webkit-text-fill-color:transparent;background-image:linear-gradient(90deg,#ff7daa,#ff998b 10%,#ffa57d,#ffb06e 20%,#e3c857,#a8e363 40%,#8de08a,#6edca8,#44d7c2 55%,#21d4cf 57.5%,#0fd4d2,#00d3d4 58.75%,#00d0d9,#01cede,#0ecbe2,#25c8e6,#33c5ea 65%,#54b8f8 70%,#829eff,#b593f9,#e586de);background-image:linear-gradient(90deg,color(xyz 0.573 0.384 0.42),color(xyz 0.596 0.454 0.27) 10%,color(xyz 0.609 0.491 0.201),color(xyz 0.624 0.529 0.134) 20%,#e3c857,#a8e363 40%,#8de08a,#6edca8,#44d7c2 55%,#21d4cf 57.5%,#0fd4d2,color(xyz 0.35 0.512 0.707) 58.75%,color(xyz 0.346 0.503 0.745),color(xyz 0.35 0.494 0.771),#0ecbe2,#25c8e6,#33c5ea 65%,#54b8f8 70%,color(xyz 0.413 0.361 1.182),#b593f9,#e586de);-webkit-background-clip:text;background-clip:text}.slug-reveal-enter-active,.slug-reveal-leave-active{grid-template-rows:1fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);display:grid}.slug-reveal-enter-from,.slug-reveal-leave-to{opacity:0;grid-template-rows:0fr}.slug-reveal-enter-active>*,.slug-reveal-leave-active>*{min-height:0;overflow:hidden}@keyframes crown-appear{0%{opacity:0;color:#fffbe6;transform:scale(0)rotate(-15deg)}40%{opacity:1;color:gold;filter:drop-shadow(0 0 6px #ffd700b3);transform:scale(1.4)rotate(5deg)}70%{color:gold;filter:drop-shadow(0 0 3px #ffd70066);transform:scale(.95)rotate(-2deg)}to{color:#daa520;filter:none;transform:scale(1)rotate(0)}}[data-state]:has(>.palette-dialog){-webkit-backdrop-filter:blur(4px)saturate(.7);backdrop-filter:blur(4px)saturate(.7);--tw-duration:.3s;transition:-webkit-backdrop-filter .3s,backdrop-filter .3s,background .3s,opacity .3s;background:#0006!important}[data-state=closed]:has(>.palette-dialog){-webkit-backdrop-filter:blur()saturate();backdrop-filter:blur()saturate();background:0 0!important}.palette-dialog{box-shadow:0 25px 50px -12px #00000040,0 0 0 1px hsl(var(--border));outline:none;animation:.3s cubic-bezier(.16,1,.3,1) dialog-in}.palette-dialog:focus,.palette-dialog:focus-visible{box-shadow:0 25px 50px -12px #00000040,0 0 0 1px hsl(var(--border));outline:none}.palette-dialog[data-state=closed]{animation:.25s cubic-bezier(.4,0,.2,1) dialog-out}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes dialog-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.95)translateY(8px)}}.palette-dialog--editing-exit[data-state=closed]{animation:.3s cubic-bezier(.4,0,.2,1) dialog-out-to-drawer}@keyframes dialog-out-to-drawer{0%{opacity:1;transform:scale(1)translate(0)}to{opacity:0;transform:scale(.35)translate(-120%)}}.palette-dialog--editing-enter[data-state=open]{animation:.3s cubic-bezier(.4,0,.2,1) dialog-in-from-drawer}@keyframes dialog-in-from-drawer{0%{opacity:0;transform:scale(.35)translate(-120%)}to{opacity:1;transform:scale(1)translate(0)}}@media(max-width:639px){@keyframes dialog-out-to-drawer{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.5)translateY(60%)}}@keyframes dialog-in-from-drawer{0%{opacity:0;transform:scale(.5)translateY(60%)}to{opacity:1;transform:scale(1)translateY(0)}}}[data-state=closed]:has(>.palette-dialog--editing-exit){animation-duration:.3s!important}.palette-dialog button:has(>.lucide-x){color:var(--color-muted-foreground);z-index:10;top:1rem;right:.75rem}.palette-dialog button:has(>.lucide-x):hover{background-color:var(--color-secondary)}.palette-dialog button:has(>.lucide-x) .lucide-x{stroke-width:2px;width:1rem;height:1rem}.migrate-dialog{animation:.3s cubic-bezier(.16,1,.3,1) dialog-in!important}.migrate-dialog[data-state=closed]{animation:.25s cubic-bezier(.4,0,.2,1) dialog-out!important}.edit-drawer{z-index:40;background:hsl(var(--card));border:1px solid hsl(var(--border));animation:.25s cubic-bezier(.4,0,.2,1) edit-drawer-in;position:fixed;box-shadow:4px 0 24px -4px #00000026}@media(min-width:640px){.edit-drawer{border-left:none;border-radius:0 .75rem .75rem 0;width:auto;max-width:280px;top:50%;left:0;transform:translateY(-50%)}}@media(max-width:639px){.edit-drawer{border-radius:.75rem;top:50%;left:50%;transform:translate(-50%,-50%)}}@keyframes edit-drawer-in{0%{opacity:0;transform:translate(-100%)translateY(-50%)}to{opacity:1;transform:translate(0)translateY(-50%)}}@media(max-width:639px){@keyframes edit-drawer-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}}.edit-drawer-enter-active,.edit-drawer-leave-active{transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1)}@media(min-width:640px){.edit-drawer-enter-from,.edit-drawer-leave-to{opacity:0;transform:translate(-100%)translateY(-50%)}}@media(max-width:639px){.edit-drawer-enter-from,.edit-drawer-leave-to{opacity:0;transform:translate(-50%,-50%)scale(.85)}}.about-card-editing{filter:blur(3px)saturate(.6);opacity:.5;pointer-events:none;transition:filter .3s,opacity .3s}.about-card-normal{filter:none;opacity:1;transition:filter .3s,opacity .3s}.sort-reveal-enter-active,.sort-reveal-leave-active{max-width:100px;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),max-width .2s cubic-bezier(.4,0,.2,1);overflow:hidden}.sort-reveal-enter-from,.sort-reveal-leave-to{opacity:0;max-width:0;transform:scale(.8)}.swatch-item-enter-active,.swatch-item-leave-active{transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1)}.swatch-item-enter-from,.swatch-item-leave-to{opacity:0;transform:scale(0)}.swatch-item-leave-active{position:absolute}.swatch-item-move{transition:transform .25s cubic-bezier(.4,0,.2,1)}.tab-fade-enter-active,.tab-fade-leave-active{transition:opacity .15s cubic-bezier(.4,0,.2,1)}.tab-fade-enter-from,.tab-fade-leave-to{opacity:0}.watercolor-swatch{filter:url(#watercolor-filter);border-radius:48% 52% 55% 45%/52% 48% 45% 55%;transition:transform .2s cubic-bezier(.4,0,.2,1),border-radius .6s cubic-bezier(.4,0,.2,1),filter .2s,box-shadow .2s;position:relative;box-shadow:inset 0 0 6px #ffffff59,inset 0 -2px 4px #0000000f,0 2px 6px #0000001a}.watercolor-swatch.watercolor-animated{transition:transform .2s cubic-bezier(.4,0,.2,1),filter .2s,box-shadow .2s}.watercolor-swatch:hover{filter:url(#watercolor-filter)brightness(1.05);transform:scale(1.06);box-shadow:inset 0 0 8px #fff6,inset 0 -2px 4px #0000000f,0 4px 12px #00000026}.watercolor-swatch:active{transform:scale(.97)}.satellite-blob{filter:url(#watercolor-filter);pointer-events:none;will-change:transform,opacity;width:25%;height:22%;margin-top:-11%;margin-left:-12.5%;position:absolute;top:50%;left:50%;box-shadow:inset 0 0 4px #ffffff4d,inset 0 -1px 3px #0000000d}.satellite-blob--small{width:18%;height:20%;margin-top:-10%;margin-left:-9%}@media(prefers-reduced-motion:reduce){.hero-blob-shadow-wrapper,.hero-blob-goo{filter:none!important}.satellite-blob{transition:none!important}}button.watercolor-swatch{border:none;outline:none;padding:0}button.watercolor-swatch:focus-visible{outline:none;box-shadow:inset 0 0 6px #ffffff59,inset 0 -2px 4px #0000000f,0 2px 8px #0003}.touch-gate-target{outline-offset:1px;outline:3px solid #0000;transition:outline-color .25s}.touch-gate-target:has(.slider-track){border-radius:var(--radius-sm)}.touch-gate-target.touch-gate-active{outline-color:hsl(var(--foreground) / .5)}.touch-gate-active .slider-track{box-shadow:inset 0 0 0 3px hsl(var(--foreground) / .5)}.touch-gate-active .slider-thumb{background-color:hsl(var(--background));border-color:hsl(var(--foreground))}.spectrum-dot-active{box-shadow:0 1px 4px #0000004d,0 0 0 4px hsl(var(--foreground) / .5)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-tracking{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-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-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}@keyframes collapsible-down{0%{height:0}to{height:var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto))))}}@keyframes collapsible-up{0%{height:var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto))))}to{height:0}}:root{--ppmycota-primary: 248, 88%, 71%}.preserve-3d{transform-style:preserve-3d}.fraunces{font-family:Fraunces,sans-serif}.fira-code{font-family:Fira Code,monospace}.rainbow-border{border:solid 5px transparent;border-radius:50px;background:linear-gradient(currentColor,currentColor) padding-box,linear-gradient(to right,#ff2400,#e81d1d,#e8b71d,#e3e81d,#1de840,#1ddde8,#2b1de8,#dd00f3,#dd00f3) border-box}.container-inline-size{container-type:inline-size}.scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hidden::-webkit-scrollbar{display:none}.depth-text{position:relative;display:inline-block;--color-primary: hsla(var(--primary), 1);--color-shadow: hsla(var(--shadow), 1);color:var(--color-primary);text-shadow:1px 1px 0 var(--color-shadow),2px 2px 0 var(--color-shadow),3px 3px 0 var(--color-shadow),4px 4px 0 var(--color-shadow),5px 5px 0 var(--color-shadow),5px 5px 1px rgba(0,0,0,.1),1px 1px 3px rgba(0,0,0,.1),2px 2px 2px rgba(0,0,0,.2),3px 3px 3px rgba(0,0,0,.2),4px 4px 5px rgba(0,0,0,.25),5px 5px 6px rgba(0,0,0,.2),6px 6px 10px rgba(0,0,0,.15)}.icon{--size: 1rem;font-size:var(--size);width:var(--size);aspect-ratio:1/1}.rainbow-text{background-image:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)!important;-webkit-background-clip:text;background-clip:text;color:transparent}.disabled{opacity:.5;pointer-events:none}@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-leading:initial;--tw-font-weight:initial;--tw-duration:initial;--tw-border-style:solid}}}.markdown-body{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7);margin:calc(var(--spacing,.25rem) * 0);padding:calc(var(--spacing,.25rem) * 0);max-width:100%}.markdown-wrapper>.markdown-body>h1,.markdown-wrapper>.markdown-body>h2,.markdown-wrapper>.markdown-body>h3,.markdown-wrapper>.markdown-body>h4,.markdown-wrapper>.markdown-body>h5,.markdown-wrapper>.markdown-body>h6{padding-top:calc(var(--spacing,.25rem) * 4);padding-bottom:calc(var(--spacing,.25rem) * 1);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);scroll-margin:calc(var(--spacing,.25rem) * 20)}:is(.markdown-wrapper>.markdown-body>h1,.markdown-wrapper>.markdown-body>h2,.markdown-wrapper>.markdown-body>h3,.markdown-wrapper>.markdown-body>h4,.markdown-wrapper>.markdown-body>h5,.markdown-wrapper>.markdown-body>h6):first-child{padding-top:calc(var(--spacing,.25rem) * 0)}.markdown-wrapper>.markdown-body>h1,.markdown-wrapper>.markdown-body>h2,.markdown-wrapper>.markdown-body>h3,.markdown-wrapper>.markdown-body>h4,.markdown-wrapper>.markdown-body>h5,.markdown-wrapper>.markdown-body>h6{transition:color .3s}.markdown-wrapper>.markdown-body>h1+h2,.markdown-wrapper>.markdown-body>h1+h3,.markdown-wrapper>.markdown-body>h1+h4,.markdown-wrapper>.markdown-body>h1+h5,.markdown-wrapper>.markdown-body>h1+h6,.markdown-wrapper>.markdown-body>h2+h3,.markdown-wrapper>.markdown-body>h2+h4,.markdown-wrapper>.markdown-body>h2+h5,.markdown-wrapper>.markdown-body>h2+h6,.markdown-wrapper>.markdown-body>h3+h4,.markdown-wrapper>.markdown-body>h3+h5,.markdown-wrapper>.markdown-body>h3+h6,.markdown-wrapper>.markdown-body>h4+h5,.markdown-wrapper>.markdown-body>h4+h6,.markdown-wrapper>.markdown-body>h5+h6{padding-top:calc(var(--spacing,.25rem) * 1)}.markdown-wrapper>.markdown-body>h1{font-size:var(--text-4xl,2.25rem);line-height:var(--tw-leading,var(--text-4xl--line-height,calc(2.5 / 2.25)));--tw-font-weight:var(--font-weight-extrabold,800);font-weight:var(--font-weight-extrabold,800)}.markdown-wrapper>.markdown-body>h2{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--md-color-h2)}.markdown-wrapper>.markdown-body>h3{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2 / 1.5)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--md-color-h3)}.markdown-wrapper>.markdown-body>h4{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--md-color-h3)}.markdown-wrapper>.markdown-body>h5{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.markdown-wrapper>.markdown-body>h6{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.markdown-wrapper>.markdown-body mark.cs-name{color:var(--md-color-accent);background:0 0;font-weight:600}.markdown-wrapper>.markdown-body>p{margin-bottom:calc(var(--spacing,.25rem) * 4);--tw-leading:calc(var(--spacing,.25rem) * 7);line-height:calc(var(--spacing,.25rem) * 7)}.markdown-wrapper>.markdown-body a{color:var(--color-blue-600,oklch(54.6% .245 262.881));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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.2s;transition-duration:.2s}@media(hover:hover){.markdown-wrapper>.markdown-body a:hover{text-decoration-line:underline}}.markdown-wrapper>.markdown-body a:where(.dark,.dark *){color:var(--color-blue-400,oklch(70.7% .165 254.624))}.markdown-wrapper>.markdown-body ul,.markdown-wrapper>.markdown-body ol{margin-bottom:calc(var(--spacing,.25rem) * 4);padding-left:calc(var(--spacing,.25rem) * 8)}.markdown-wrapper>.markdown-body ul{list-style-type:disc}.markdown-wrapper>.markdown-body ol{list-style-type:decimal}.markdown-wrapper>.markdown-body li{margin-bottom:calc(var(--spacing,.25rem) * 2)}.markdown-wrapper>.markdown-body li>ul,.markdown-wrapper>.markdown-body li>ol{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * 0)}.markdown-wrapper>.markdown-body pre{margin-bottom:calc(var(--spacing,.25rem) * 4);border-radius:var(--radius-lg,var(--radius));background-color:var(--color-gray-100,oklch(96.7% .003 264.542));padding:calc(var(--spacing,.25rem) * 4);overflow-x:auto}.markdown-wrapper>.markdown-body pre:where(.dark,.dark *){background-color:var(--color-gray-800,oklch(27.8% .033 256.848))}.markdown-wrapper>.markdown-body code{border-radius:var(--radius,.5rem);background-color:var(--color-gray-100,oklch(96.7% .003 264.542));font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.markdown-wrapper>.markdown-body code:where(.dark,.dark *){background-color:var(--color-gray-800,oklch(27.8% .033 256.848))}.markdown-wrapper>.markdown-body p>code,.markdown-wrapper>.markdown-body li>code{border-radius:var(--radius,.5rem);background-color:var(--color-gray-100,oklch(96.7% .003 264.542));padding-inline:calc(var(--spacing,.25rem) * 1);padding-block:calc(var(--spacing,.25rem) * .5);color:var(--color-pink-600,oklch(59.2% .249 .584))}:is(.markdown-wrapper>.markdown-body p>code,.markdown-wrapper>.markdown-body li>code):where(.dark,.dark *){background-color:var(--color-gray-800,oklch(27.8% .033 256.848));color:var(--color-pink-400,oklch(71.8% .202 349.761))}.markdown-wrapper>.markdown-body blockquote{margin-block:calc(var(--spacing,.25rem) * 4);border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-gray-300,oklch(87.2% .01 258.338));padding-left:calc(var(--spacing,.25rem) * 4);color:var(--color-gray-600,oklch(44.6% .03 256.802));font-style:italic}.markdown-wrapper>.markdown-body blockquote:where(.dark,.dark *){border-color:var(--color-gray-700,oklch(37.3% .034 259.733));color:var(--color-gray-400,oklch(70.7% .022 261.325))}.markdown-wrapper>.markdown-body table{margin-bottom:calc(var(--spacing,.25rem) * 4);border-collapse:collapse;width:100%}.markdown-wrapper>.markdown-body th,.markdown-wrapper>.markdown-body td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-300,oklch(87.2% .01 258.338));padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}:is(.markdown-wrapper>.markdown-body th,.markdown-wrapper>.markdown-body td):where(.dark,.dark *){border-color:var(--color-gray-700,oklch(37.3% .034 259.733))}.markdown-wrapper>.markdown-body th{background-color:var(--color-gray-100,oklch(96.7% .003 264.542));text-align:left;--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}.markdown-wrapper>.markdown-body th:where(.dark,.dark *){background-color:var(--color-gray-800,oklch(27.8% .033 256.848))}.markdown-wrapper>.markdown-body img{margin-inline:auto;margin-block:calc(var(--spacing,.25rem) * 4);border-radius:var(--radius-lg,var(--radius));max-width:100%;height:auto}.markdown-wrapper>.markdown-body hr{margin-block:calc(var(--spacing,.25rem) * 4);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--md-color-h2,hsl(var(--border)));opacity:.3}.markdown-wrapper>.markdown-body dl{margin-bottom:calc(var(--spacing,.25rem) * 4)}.markdown-wrapper>.markdown-body dt{margin-bottom:calc(var(--spacing,.25rem) * 1);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}.markdown-wrapper>.markdown-body dd{margin-bottom:calc(var(--spacing,.25rem) * 4);padding-left:calc(var(--spacing,.25rem) * 4)}.markdown-wrapper>.markdown-body ul.contains-task-list{padding-left:calc(var(--spacing,.25rem) * 0);list-style-type:none}.markdown-wrapper>.markdown-body ul.contains-task-list li.task-list-item{align-items:center;display:flex}.markdown-wrapper>.markdown-body ul.contains-task-list li.task-list-item input[type=checkbox]{margin-right:calc(var(--spacing,.25rem) * 2)}.markdown-wrapper>.markdown-body .callout{margin-bottom:calc(var(--spacing,.25rem) * 4);border-top-right-radius:var(--radius-lg,var(--radius));border-bottom-right-radius:var(--radius-lg,var(--radius));border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--color-blue-500,oklch(62.3% .214 259.815));background-color:var(--color-gray-100,oklch(96.7% .003 264.542));padding:calc(var(--spacing,.25rem) * 4)}.markdown-wrapper>.markdown-body .callout:where(.dark,.dark *){border-color:var(--color-blue-400,oklch(70.7% .165 254.624));background-color:var(--color-gray-800,oklch(27.8% .033 256.848))}.markdown-wrapper>.markdown-body .callout.warning{border-color:var(--color-yellow-500,oklch(79.5% .184 86.047))}.markdown-wrapper>.markdown-body .callout.warning:where(.dark,.dark *){border-color:var(--color-yellow-400,oklch(85.2% .199 91.936))}.markdown-wrapper>.markdown-body .callout.danger{border-color:var(--color-red-500,oklch(63.7% .237 25.331))}.markdown-wrapper>.markdown-body .callout.danger:where(.dark,.dark *){border-color:var(--color-red-400,oklch(70.4% .191 22.216))}.markdown-wrapper>.markdown-body .footnotes{margin-top:calc(var(--spacing,.25rem) * 8);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-gray-300,oklch(87.2% .01 258.338));padding-top:calc(var(--spacing,.25rem) * 4)}.markdown-wrapper>.markdown-body .footnotes:where(.dark,.dark *){border-color:var(--color-gray-700,oklch(37.3% .034 259.733))}.markdown-wrapper>.markdown-body .footnotes ol{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.markdown-wrapper>.markdown-body .footnote-ref{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)))}.markdown-wrapper>.markdown-body .footnote-item{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)))}.markdown-wrapper>.markdown-body .toc{top:calc(var(--spacing,.25rem) * 0);z-index:10;background-color:var(--color-background,hsl(var(--background)));margin-bottom:calc(var(--spacing,.25rem) * 4);padding:calc(var(--spacing,.25rem) * 4);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-gray-900,oklch(21% .034 264.665));position:sticky}.markdown-wrapper>.markdown-body .toc:where(.dark,.dark *){color:var(--color-gray-100,oklch(96.7% .003 264.542))}.markdown-wrapper>.markdown-body .toc{scroll-margin:calc(var(--spacing,.25rem) * 20)}.markdown-wrapper>.markdown-body .toc:first-child{margin-top:calc(var(--spacing,.25rem) * 0)}.markdown-wrapper>.markdown-body .toc ul{padding-left:calc(var(--spacing,.25rem) * 0);list-style-type:none}.markdown-wrapper>.markdown-body .toc li{margin-bottom:calc(var(--spacing,.25rem) * 2)}.markdown-wrapper>.markdown-body .toc li>ul{margin-top:calc(var(--spacing,.25rem) * 2);margin-bottom:calc(var(--spacing,.25rem) * 0)}.markdown-wrapper>.markdown-body .toc a{color:var(--color-blue-600,oklch(54.6% .245 262.881));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,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.2s;transition-duration:.2s}@media(hover:hover){.markdown-wrapper>.markdown-body .toc a:hover{text-decoration-line:underline}}.markdown-wrapper>.markdown-body .toc a:where(.dark,.dark *){color:var(--color-blue-400,oklch(70.7% .165 254.624))}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}.grid-background[data-v-296d113f]{background-size:1rem!important;background-repeat:repeat}.controls-icon[data-v-296d113f]{width:1.5rem;aspect-ratio:1;cursor:pointer;color:hsl(var(--foreground));opacity:.6;transition:opacity .2s ease,transform .2s ease,color .2s ease}.controls-icon[data-v-296d113f]:hover{opacity:1;transform:scale(1.15);color:hsl(var(--primary))}.controls-icon[data-v-296d113f]:active{transform:scale(.95)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as r,n as d,p as g}from"./Katex-ClrxLHTj.js";import{g as c}from"./index-Q19pIqw1.js";import{J as h,V as m,a0 as t,a1 as a,a2 as n,u as o,a6 as s,N as i}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const u={class:"markdown-body"},f={class:"language-typescript"},v={class:"language-typescript"},B={__name:"kelvin",setup(y,{expose:p}){p({frontmatter:{}});const{kelvin:l}=c("kelvin");return(x,e)=>(h(),m("div",u,[e[3]||(e[3]=t("h3",null,"Attributes",-1)),t("ul",null,[t("li",null,[e[0]||(e[0]=t("code",null,"kelvin",-1)),a(": Color temperature ("+n(o(l).min)+" to "+n(o(l).max)+")",1)])]),e[4]||(e[4]=s("<h3>Background</h3><p>Color temperature is rooted in black-body radiation: heat an ideal radiator and its emitted light traces a curve from deep red through white to blue as temperature rises. The concept dates to Lord Kelvin’s 19th-century thermodynamics work and was formalized for colorimetry in the early 20th century.</p><p>This is a <strong>single-dimensional</strong> color space—one number, <code>1000K</code> to <code>40000K</code>, mapping to a point on the Planckian locus in the CIE chromaticity diagram. It can’t represent colors off that curve (no greens, magentas, or saturated colors in general). Conversions to RGB use the <strong>Tanner Helland approximation</strong>, a polynomial fit to the black-body spectrum.</p><hr><h2>Color Model</h2><h3>Component</h3><ol><li><p><strong><code>kelvin</code> (Color Temperature)</strong>: <code>kelvin = 1000\\text{K} \\text{ (reddish-orange) to } 40000\\text{K} \\text{ (blue)}</code></p><p>Lower values are warm; higher values are cool. The entire space is a single axis.</p></li></ol><h3>Common Reference Points</h3><ul><li><strong>1900K</strong>: Candlelight</li><li><strong>2700K</strong>: Incandescent/warm white bulb</li><li><strong>3200K</strong>: Halogen lamp/studio tungsten</li><li><strong>4100K</strong>: Moonlight</li><li><strong>5000K–5500K</strong>: Direct noon sunlight/photography “daylight”</li><li><strong>6500K</strong>: D65 standard daylight/overcast sky</li><li><strong>15000K–27000K</strong>: Clear blue sky</li></ul><hr><h2>Advantages</h2><ul><li>Simple—one number describes the whole color</li><li>Directly maps to real-world light sources</li><li>Intuitive warm/cool axis that photographers and cinematographers already think in</li></ul><h2>Disadvantages</h2><ul><li>Covers only the Planckian locus—a narrow slice of visible color</li><li>Can’t express the green–magenta “tint” dimension perpendicular to the locus</li><li>Not perceptually uniform</li><li>RGB approximations diverge from the true black-body curve at extreme temperatures</li></ul><hr><h2>Color Conversions</h2><h3>Kelvin to RGB</h3><p>Polynomial approximation (Tanner Helland) mapping temperature to RGB. Each channel uses a different curve depending on whether the temperature is below or above ~6600K:</p>",18)),i(o(r),{expression:"R = \\begin{cases} 255 & T \\leq 66 \\\\ 329.7 \\cdot (T - 60)^{-0.133} & T > 66 \\end{cases}"}),i(o(r),{expression:"G = \\begin{cases} 99.47 \\ln T - 161.12 & T \\leq 66 \\\\ 288.12 \\cdot (T - 60)^{-0.0755} & T > 66 \\end{cases}"}),i(o(r),{expression:"B = \\begin{cases} 255 & T \\geq 66 \\\\ 138.52 \\ln(T - 10) - 305.04 & 19 < T < 66 \\\\ 0 & T \\leq 19 \\end{cases}"}),t("p",null,[e[1]||(e[1]=a("where ",-1)),i(o(r),{expression:"T = \\text{kelvin} / 100","display-mode":!1}),e[2]||(e[2]=a(" and results are clamped to [0, 255] then normalized.",-1))]),t("div",f,n(o(d)),1),e[5]||(e[5]=t("h3",null,"RGB to Kelvin",-1)),e[6]||(e[6]=t("p",null,"Inverts the polynomial fits to estimate the closest color temperature for a given RGB value:",-1)),t("div",v,n(o(g)),1),e[7]||(e[7]=s("<hr><h2>Common Applications</h2><ol><li><strong>Photography and cinematography</strong>: White balance settings—match the camera to the scene’s color temperature.</li><li><strong>Lighting industry</strong>: Bulb and LED specifications use correlated color temperature (CCT) to describe appearance.</li><li><strong>Display calibration</strong>: Screen color temperature adjustment for different viewing conditions or time-of-day shifting (e.g., Night Shift, f.lux).</li><li><strong>Smart lighting</strong>: Tunable-white fixtures shift CCT for circadian rhythm support.</li><li><strong>Astronomy</strong>: Stellar classification by photospheric temperature.</li></ol>",3))]))}};export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as a,f as u,l as f}from"./Katex-ClrxLHTj.js";import{g}from"./index-Q19pIqw1.js";import{J as h,V as m,a0 as o,a1 as n,a2 as i,u as t,a6 as c,N as r}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const b={class:"markdown-body"},y={class:"language-typescript"},x={class:"language-typescript"},B={__name:"lab",setup(v,{expose:p}){p({frontmatter:{}});const{l,a:s,b:d}=g("lab");return(C,e)=>(h(),m("div",b,[e[6]||(e[6]=o("h3",null,"Attributes",-1)),o("ul",null,[o("li",null,[e[0]||(e[0]=o("code",null,"L*",-1)),n(": Lightness ("+i(t(l).min)+" to "+i(t(l).max)+")",1)]),o("li",null,[e[1]||(e[1]=o("code",null,"a*",-1)),n(": Green-Red axis ("+i(t(s).min)+" to "+i(t(s).max)+")",1)]),o("li",null,[e[2]||(e[2]=o("code",null,"b*",-1)),n(": Blue-Yellow axis ("+i(t(d).min)+" to "+i(t(d).max)+")",1)])]),e[7]||(e[7]=c("<h3>Historical Context</h3><p>Standardized by the CIE in 1976, Lab was designed to be <strong>perceptually uniform</strong>—equal distances in the space should correspond to equal perceived color differences. It’s device-independent: Lab describes <em>what</em> a color looks like, not how a particular device produces it. For decades it’s been the workhorse of color management, ICC profiles, and industrial colorimetry.</p><hr><h2>Key Characteristics</h2><ol><li><strong>Perceptual uniformity</strong>: the founding goal. Largely successful, though the blue-purple region exhibits more error than Ottosson’s OKLab.</li><li><strong>Device independence</strong>: Lab values are defined relative to a standard illuminant, not a particular display or printer.</li><li><strong>Separated lightness</strong>: <code>L*</code> is orthogonal to the chromatic axes, enabling brightness adjustment without hue shift.</li></ol><h3>Advantages</h3><ul><li>Perceptually uniform (the CIE 1976 definition)</li><li>Device-independent—the standard for cross-media color communication</li><li>Covers all perceivable colors (gamut exceeds any physical display)</li><li>Delta-E calculations (color difference metrics) are native to this space</li></ul><h3>Disadvantages</h3><ul><li>Computationally heavier than RGB conversions (piecewise <code>f(t)</code> function)</li><li>Not directly displayable—out-of-gamut Lab values must be mapped to sRGB or similar</li><li>Unintuitive for manual color selection (what does <code>a* = -40</code> <em>look</em> like?)</li></ul><h3>White Points</h3><ul><li><strong>D50</strong>: graphic arts, printing, ICC profile standard. Lab’s default illuminant.</li><li><strong>D65</strong>: average daylight, digital imaging. Used by sRGB and Display P3.</li></ul><p>Conversions between D50 and D65 use <strong>Bradford chromatic adaptation</strong>.</p><hr><h2>Color Model</h2><h3>Components</h3><ol><li><p><strong><code>L*</code> (Lightness)</strong>: <code>L^* = 0 \\text{ (black) to } 100 \\text{ (diffuse white)}</code></p></li><li><p><strong><code>a*</code> (Green-Red axis)</strong>: <code>a^* < 0 \\text{ (green) to } a^* > 0 \\text{ (red)}</code></p></li><li><p><strong><code>b*</code> (Blue-Yellow axis)</strong>: <code>b^* < 0 \\text{ (blue) to } b^* > 0 \\text{ (yellow)}</code></p></li></ol><h3>Representation</h3><p>A three-dimensional Cartesian space. <code>L*</code> is the vertical axis; the <code>a*</code>/<code>b*</code> plane describes chromaticity at each lightness level. The cylindrical variant (LCh) converts <code>a*</code>,<code>b*</code> to polar coordinates—chroma and hue.</p><hr><h2>Color Conversions</h2><h3>XYZ to Lab</h3><p>Normalize XYZ by the reference white point, apply a piecewise function that approximates a cube root, then scale into L*a*b*:</p>",22)),r(t(a),{expression:"f(t) = \\begin{cases} \\sqrt[3]{t} & t > \\epsilon \\\\ \\frac{\\kappa\\, t + 16}{116} & \\text{otherwise} \\end{cases}"}),r(t(a),{expression:"L^* = 116\\, f\\!\\left(\\frac{Y}{Y_n}\\right) - 16, \\quad a^* = 500\\left[f\\!\\left(\\frac{X}{X_n}\\right) - f\\!\\left(\\frac{Y}{Y_n}\\right)\\right], \\quad b^* = 200\\left[f\\!\\left(\\frac{Y}{Y_n}\\right) - f\\!\\left(\\frac{Z}{Z_n}\\right)\\right]"}),o("p",null,[e[3]||(e[3]=n("where ",-1)),r(t(a),{expression:"\\epsilon = \\tfrac{216}{24389}","display-mode":!1}),e[4]||(e[4]=n(" and ",-1)),r(t(a),{expression:"\\kappa = \\tfrac{24389}{27}","display-mode":!1}),e[5]||(e[5]=n(".",-1))]),o("div",y,i(t(u)),1),e[8]||(e[8]=o("h3",null,"Lab to XYZ",-1)),e[9]||(e[9]=o("p",null,"Invert the L*a*b* formulas—recover the normalized XYZ ratios, apply the inverse piecewise function, then scale by the white point:",-1)),r(t(a),{expression:"f_y = \\frac{L^* + 16}{116}, \\quad f_x = \\frac{a^*}{500} + f_y, \\quad f_z = f_y - \\frac{b^*}{200}"}),r(t(a),{expression:"X = X_n \\cdot f^{-1}(f_x), \\quad Y = Y_n \\cdot f^{-1}(f_y), \\quad Z = Z_n \\cdot f^{-1}(f_z)"}),o("div",x,i(t(f)),1),e[10]||(e[10]=c("<hr><h2>Applications</h2><ol><li><strong>ICC color management</strong>: the internal representation for color profiles and device-independent color communication.</li><li><strong>Delta-E calculations</strong>: industrial quality control (textiles, paint, manufacturing) relies on Lab-based color difference formulas.</li><li><strong>Image processing</strong>: operations like sharpening and blurring benefit from the perceptual uniformity.</li><li><strong>Print production</strong>: gamut mapping between CMYK and RGB passes through Lab.</li><li><strong>Scientific colorimetry</strong>: the standard coordinate system for color measurement and analysis.</li></ol>",3))]))}};export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as r,g as h,i as p}from"./Katex-ClrxLHTj.js";import{g}from"./index-Q19pIqw1.js";import{J as m,V as b,a0 as o,a1 as i,a2 as a,u as t,a6 as d,N as c}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const f={class:"markdown-body"},C={class:"language-typescript"},L={class:"language-typescript"},N={__name:"lch",setup(y,{expose:u}){u({frontmatter:{}});const{l,c:n,h:s}=g("lch");return(x,e)=>(m(),b("div",f,[e[3]||(e[3]=o("h3",null,"Attributes",-1)),o("ul",null,[o("li",null,[e[0]||(e[0]=o("code",null,"L",-1)),i(": Lightness ("+a(t(l).min)+" to "+a(t(l).max)+")",1)]),o("li",null,[e[1]||(e[1]=o("code",null,"C",-1)),i(": Chroma ("+a(t(n).min)+" to "+a(t(n).max)+")",1)]),o("li",null,[e[2]||(e[2]=o("code",null,"H",-1)),i(": Hue ("+a(t(s).min)+" to "+a(t(s).max)+")",1)])]),e[4]||(e[4]=d('<h3>Historical Context</h3><p>CIELCh is Lab in polar coordinates. The <a href="https://en.wikipedia.org/wiki/International_Commission_on_Illumination">CIE</a> defined it as a cylindrical reparameterization of L*a*b*: same <code>L</code> axis, but the Cartesian <code>a*</code>/<code>b*</code> plane is expressed as chroma (<code>C = sqrt(a^2 + b^2)</code>) and hue (<code>H = atan2(b, a)</code>). The result keeps Lab’s perceptual uniformity while giving you direct handles on saturation and hue—two things designers actually want to tweak.</p><hr><h2>Key Characteristics</h2><ol><li><strong>Cylindrical Lab.</strong> Same underlying data as Lab, just re-expressed in polar form.</li><li><strong>Perceptually uniform.</strong> Equal numeric distances still correspond to roughly equal perceived differences.</li><li><strong>Intuitive axes.</strong> Lightness, chroma, and hue map directly to how people think about color.</li><li><strong>Device-independent.</strong> Like Lab, LCh describes color itself, not device output.</li></ol><h2>Advantages</h2><ul><li>Chroma and hue are independently adjustable—change saturation without shifting hue</li><li>Perceptually uniform gradients and interpolation</li><li>Covers the full gamut of perceivable colors</li><li>Natural fit for color harmonies (rotate hue, hold L and C constant)</li></ul><h2>Disadvantages</h2><ul><li>Computationally heavier than RGB or HSL conversions</li><li>Not directly displayable; must convert to a device space</li><li>High-chroma values often fall outside the sRGB gamut</li><li>Less tool support than RGB/HSL in mainstream software</li></ul><hr><h2>Color Model</h2><h3>Components</h3><ol><li><p><strong><code>L</code> (Lightness)</strong>: <code>0</code> (black) to <code>100</code> (diffuse white). Identical to Lab’s <code>L*</code>.</p></li><li><p><strong><code>C</code> (Chroma)</strong>: <code>0</code> (achromatic) upward; highly saturated colors can exceed <code>100</code>. This is the radial distance from the neutral axis in the <code>a*b*</code> plane.</p></li><li><p><strong><code>H</code> (Hue)</strong>: The angle in the <code>a*b*</code> plane:</p><ul><li><code>0</code> = reddish (+a* direction)</li><li><code>90</code> = yellowish (+b* direction)</li><li><code>180</code> = greenish (-a* direction)</li><li><code>270</code> = bluish (-b* direction)</li></ul></li></ol><p>The space forms a cylinder: <code>L</code> runs vertically, <code>C</code> extends radially, and <code>H</code> sweeps around the axis. It’s the same color solid as Lab, just easier to navigate.</p><hr><h2>Color Conversions</h2><h3>Lab to LCh</h3><p>Cartesian to polar—extract chroma (magnitude) and hue (angle) from the <code>a*</code>/<code>b*</code> plane:</p>',18)),c(t(r),{expression:"C = \\sqrt{a^{*2} + b^{*2}}, \\quad H = \\frac{\\operatorname{atan2}(b^*,\\, a^*)}{2\\pi}"}),o("div",C,a(t(h)),1),e[5]||(e[5]=o("h3",null,"LCh to Lab",-1)),e[6]||(e[6]=o("p",null,[i("Polar back to Cartesian—recover "),o("code",null,"a*"),i(" and "),o("code",null,"b*"),i(" from chroma and hue:")],-1)),c(t(r),{expression:"a^* = C \\cos(2\\pi H), \\quad b^* = C \\sin(2\\pi H)"}),o("div",L,a(t(p)),1),e[7]||(e[7]=d("<hr><h2>Applications</h2><ol><li><strong>Color harmonies.</strong> Rotate hue at fixed lightness and chroma to generate complementary, triadic, or analogous palettes.</li><li><strong>Accessible contrast.</strong> Adjust <code>L</code> independently to hit WCAG contrast ratios without disturbing hue or saturation.</li><li><strong>Design systems.</strong> Build color scales by stepping through <code>L</code> or <code>C</code> at regular intervals.</li><li><strong>Perceptual gradients.</strong> Interpolating in LCh avoids the muddy midpoints common in RGB blends.</li><li><strong>Print workflows.</strong> Predict perceptual appearance across media without device-dependent guesswork.</li></ol>",3))]))}};export{N as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as l,j as u,o as m}from"./Katex-ClrxLHTj.js";import{g}from"./index-Q19pIqw1.js";import{J as b,V as h,a0 as t,a1 as n,a2 as i,u as o,a6 as p,N as c}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const f={class:"markdown-body"},x={class:"language-typescript"},y={class:"language-typescript"},M={__name:"oklab",setup(L,{expose:d}){d({frontmatter:{}});const{l:a,a:r,b:s}=g("oklab");return(C,e)=>(b(),h("div",f,[e[3]||(e[3]=t("h3",null,"Attributes",-1)),t("ul",null,[t("li",null,[e[0]||(e[0]=t("code",null,"L",-1)),n(": Lightness ("+i(o(a).min)+" to "+i(o(a).max)+")",1)]),t("li",null,[e[1]||(e[1]=t("code",null,"a",-1)),n(": Green-Red axis ("+i(o(r).min)+" to "+i(o(r).max)+")",1)]),t("li",null,[e[2]||(e[2]=t("code",null,"b",-1)),n(": Blue-Yellow axis ("+i(o(s).min)+" to "+i(o(s).max)+")",1)])]),e[4]||(e[4]=p("<h3>Historical Context</h3><p>Developed by Björn Ottosson in 2020, OKLab addresses the perceptual non-uniformities present in CIE Lab—particularly in the blue-purple region, where Lab’s uniformity breaks down. The conversion path (XYZ → LMS cube root → linear transform) is leaner than Lab’s piecewise <code>f(t)</code> function, and the resulting space is a first-class citizen in CSS Color Level 4.</p><hr><h2>Key Characteristics</h2><ol><li><strong>Perceptual uniformity</strong> superior to Lab—equal Euclidean distances correspond more faithfully to equal perceived color differences.</li><li><strong>Hue linearity</strong>: mixtures of two colors maintain consistent hue, a property Lab struggles with in the blue-purple region.</li><li><strong>Consistent lightness</strong>: the <code>L</code> component tracks human brightness perception across the full gamut.</li><li><strong>Computational efficiency</strong>: the conversion path (XYZ → LMS cube root → linear transform) is leaner than Lab’s piecewise <code>f(t)</code> function.</li></ol><h3>Advantages</h3><ul><li>Better perceptual uniformity than Lab for interpolation and gradient generation</li><li>Hue-linear mixing—critical for palette generation and color-mix()</li><li>Consistent lightness across hues (blue and yellow at the same <code>L</code> look equally bright)</li><li>Efficient to compute; no piecewise branching in the forward path</li></ul><h3>Disadvantages</h3><ul><li>Relatively new; less tooling and institutional support than Lab</li><li>Not an ICC or ISO standard (yet)</li><li>Still an approximation of human color perception—no color space is perfect</li></ul><h3>Color Gamut</h3><p>OKLab encompasses all perceivable colors, larger than any RGB or CMYK gamut. Out-of-gamut values are valid in the space; they simply can’t be displayed without gamut mapping.</p><hr><h2>Color Model</h2><h3>Components</h3><ol><li><p><strong><code>L</code> (Lightness)</strong>: <code>L = 0 \\text{ (black) to } 1 \\text{ (white)}</code></p></li><li><p><strong><code>a</code> (Green-Red axis)</strong>: <code>a < 0 \\text{ (green) to } a > 0 \\text{ (red)}</code></p></li><li><p><strong><code>b</code> (Blue-Yellow axis)</strong>: <code>b < 0 \\text{ (blue) to } b > 0 \\text{ (yellow)}</code></p></li></ol><h3>Representation</h3><p>Colors sit in a three-dimensional Cartesian space. <code>L</code> runs vertically; the <code>a</code>/<code>b</code> plane at each lightness level describes chromaticity. Structurally identical to Lab, but the coordinate system is derived from a different LMS basis, yielding the improved perceptual properties.</p><hr><h2>Color Conversions</h2><h3>XYZ to OKLab</h3><p>Two matrix multiplications sandwiching a cube root. The first maps XYZ to LMS cone responses; the cube root models the perceptual non-linearity; the second projects into OKLab:</p>",21)),c(o(l),{expression:"\\begin{bmatrix} l \\\\ m \\\\ s \\end{bmatrix} = M_1 \\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix}, \\quad \\begin{bmatrix} L \\\\ a \\\\ b \\end{bmatrix} = M_2 \\begin{bmatrix} \\sqrt[3]{l} \\\\ \\sqrt[3]{m} \\\\ \\sqrt[3]{s} \\end{bmatrix}"}),t("div",x,i(o(u)),1),e[5]||(e[5]=t("h3",null,"OKLab to XYZ",-1)),e[6]||(e[6]=t("p",null,"The inverse: undo the linear transform, cube to reverse the perceptual compression, then map back to XYZ:",-1)),c(o(l),{expression:"\\begin{bmatrix} l' \\\\ m' \\\\ s' \\end{bmatrix} = M_2^{-1} \\begin{bmatrix} L \\\\ a \\\\ b \\end{bmatrix}, \\quad \\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix} = M_1^{-1} \\begin{bmatrix} l'^3 \\\\ m'^3 \\\\ s'^3 \\end{bmatrix}"}),t("div",y,i(o(m)),1),e[7]||(e[7]=p("<hr><h2>Applications</h2><ol><li><strong>Color interpolation</strong>: the default interpolation space in CSS Color Level 4’s <code>color-mix()</code>.</li><li><strong>Palette generation</strong>: perceptually balanced palettes with consistent lightness steps.</li><li><strong>Gamut mapping</strong>: value.js uses OKLab as the working space for Ottosson’s analytical sRGB gamut mapping algorithm.</li><li><strong>Image processing</strong>: color grading, correction, and manipulation benefit from the improved uniformity.</li><li><strong>Accessible design</strong>: consistent lightness makes it easier to maintain contrast ratios across hue variations.</li></ol>",3))]))}};export{M as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as r,k as p,m as u,o as m,j as g}from"./Katex-ClrxLHTj.js";import{g as b}from"./index-Q19pIqw1.js";import{J as C,V as L,a0 as o,a1 as a,a2 as s,u as t,a6 as c,N as i}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const f={class:"markdown-body"},x={class:"language-typescript"},y={class:"language-typescript"},v={class:"language-typescript"},S={class:"language-typescript"},I={__name:"oklch",setup(k,{expose:h}){h({frontmatter:{}});const{l:n,c:l,h:d}=b("oklch");return(K,e)=>(C(),L("div",f,[e[3]||(e[3]=o("h3",null,"Attributes",-1)),o("ul",null,[o("li",null,[e[0]||(e[0]=o("code",null,"L",-1)),a(": Lightness ("+s(t(n).min)+" to "+s(t(n).max)+")",1)]),o("li",null,[e[1]||(e[1]=o("code",null,"C",-1)),a(": Chroma ("+s(t(l).min)+" to "+s(t(l).max)+")",1)]),o("li",null,[e[2]||(e[2]=o("code",null,"H",-1)),a(": Hue ("+s(t(d).min)+" to "+s(t(d).max)+")",1)])]),e[4]||(e[4]=c('<h3>Historical Context</h3><p>OKLCh is the polar form of <a href="https://bottosson.github.io/posts/oklab/">OKLab</a>, published by Björn Ottosson in 2020 to address the perceptual non-uniformities in older Lab/LCh models. The relationship is the same—Cartesian <code>a</code>/<code>b</code> re-expressed as chroma and hue—but the underlying OKLab space produces better uniformity, especially in blues and purples where CIE L*a*b* shows significant error. OKLCh is a first-class color function in <strong>CSS Color Level 4</strong>.</p><hr><h2>Key Characteristics</h2><ol><li><strong>Better uniformity than CIE LCh.</strong> Equal chroma steps look more consistent across the hue circle.</li><li><strong>Polar coordinates.</strong> Lightness, chroma, and hue—same intuitive axes as LCh.</li><li><strong>Stable lightness.</strong> Changing chroma or hue doesn’t shift perceived brightness the way it does in HSL.</li><li><strong>CSS-native.</strong> <code>oklch()</code> is supported in all modern browsers as of 2024.</li></ol><h2>Advantages</h2><ul><li>Markedly better perceptual uniformity than HSL, HSV, or CIE LCh</li><li>Perceived brightness stays stable when you adjust chroma or hue</li><li>Direct CSS support—no conversion step for web use</li><li>Clean gradients and palette generation with minimal hue shift</li></ul><h2>Disadvantages</h2><ul><li>Newer; less support in legacy tools and older design software</li><li>Conversion chain is longer than RGB or HSL (OKLCh → OKLab → XYZ → linear RGB → sRGB)</li><li>Not directly displayable—still needs gamut mapping to a device space</li><li>The <code>0</code>–<code>1</code> lightness scale differs from Lab/LCh’s <code>0</code>–<code>100</code>, which can cause confusion</li></ul><hr><h2>Color Model</h2><h3>Components</h3><ol><li><p><strong><code>L</code> (Lightness)</strong>: <code>0</code> (black) to <code>1</code> (white). Note the <code>0</code>–<code>1</code> range, not <code>0</code>–<code>100</code> as in CIE L*.</p></li><li><p><strong><code>C</code> (Chroma)</strong>: <code>0</code> (achromatic) to roughly <code>0.4</code> for the most saturated colors. The scale is much smaller than CIE LCh’s.</p></li><li><p><strong><code>H</code> (Hue)</strong>: <code>0</code> to <code>360</code> degrees (or <code>0</code>–<code>1</code> normalized). Same angular concept as LCh, but hue spacing is more perceptually even—the “blue problem” in CIE LCh (where blues compress into a narrow hue range) is largely resolved.</p></li></ol><h3>Relationship to OKLab</h3><p>OKLCh relates to OKLab exactly as CIE LCh relates to CIE Lab: same data, polar vs. Cartesian. <code>C = sqrt(a^2 + b^2)</code>, <code>H = atan2(b, a)</code>. The lightness channel is shared directly.</p><hr><h2>Color Conversions</h2><h3>OKLCh to OKLab</h3><p>Polar to Cartesian—recover the <code>a</code>/<code>b</code> axes from chroma and hue:</p>',19)),i(t(r),{expression:"a = C \\cos(2\\pi h), \\quad b = C \\sin(2\\pi h)"}),o("div",x,s(t(p)),1),e[5]||(e[5]=o("h3",null,"OKLab to OKLCh",-1)),e[6]||(e[6]=o("p",null,[a("Cartesian to polar—extract chroma (magnitude) and hue (angle) from the "),o("code",null,"a"),a("/"),o("code",null,"b"),a(" plane:")],-1)),i(t(r),{expression:"C = \\sqrt{a^2 + b^2}, \\quad h = \\frac{\\operatorname{atan2}(b,\\, a)}{2\\pi}"}),o("div",y,s(t(u)),1),e[7]||(e[7]=o("h3",null,"OKLab to XYZ",-1)),e[8]||(e[8]=o("p",null,"Invert the two linear transforms around a cube operation. The cube reverses the perceptual cube-root compression applied in the forward path:",-1)),i(t(r),{expression:"\\begin{bmatrix} l' \\\\ m' \\\\ s' \\end{bmatrix} = M_1^{-1} \\begin{bmatrix} L \\\\ a \\\\ b \\end{bmatrix}, \\quad \\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix} = M_2^{-1} \\begin{bmatrix} l'^3 \\\\ m'^3 \\\\ s'^3 \\end{bmatrix}"}),o("div",v,s(t(m)),1),e[9]||(e[9]=o("h3",null,"XYZ to OKLab",-1)),e[10]||(e[10]=o("p",null,"Two matrix multiplications sandwiching a cube root. The first maps XYZ to LMS cone responses; the cube root models the perceptual non-linearity; the second projects into OKLab:",-1)),i(t(r),{expression:"\\begin{bmatrix} l \\\\ m \\\\ s \\end{bmatrix} = M_1 \\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix}, \\quad \\begin{bmatrix} L \\\\ a \\\\ b \\end{bmatrix} = M_2 \\begin{bmatrix} \\sqrt[3]{l} \\\\ \\sqrt[3]{m} \\\\ \\sqrt[3]{s} \\end{bmatrix}"}),o("div",S,s(t(g)),1),e[11]||(e[11]=c("<hr><h2>Applications</h2><ol><li><strong>CSS <code>oklch()</code>.</strong> Supported in Chrome, Safari, and Firefox; increasingly adopted for design systems.</li><li><strong>Design system palettes.</strong> Step through <code>L</code> or <code>C</code> to build scales that look evenly spaced to the human eye.</li><li><strong>Accessible color.</strong> Adjust <code>L</code> to meet WCAG contrast targets without disturbing hue or saturation.</li><li><strong>Perceptual gradients.</strong> Interpolating in OKLCh avoids the hue shifts and muddy midpoints of RGB or HSL blends.</li><li><strong>Data visualization.</strong> Build color ramps where perceptual distance tracks data distance.</li></ol>",3))]))}};export{I as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as n,r as m,x as p}from"./Katex-ClrxLHTj.js";import{g as u}from"./index-Q19pIqw1.js";import{J as h,V as b,a0 as t,a1 as a,a2 as o,u as i,a6 as c,N as r}from"./vendor-highlight-sMWp9TLU.js";import"./vendor-katex-Dehg5p_Y.js";import"./vendor-prettier-wO8BBsoP.js";const f={class:"markdown-body"},x={class:"language-typescript"},v={class:"language-typescript"},N={__name:"rgb",setup(y,{expose:g}){g({frontmatter:{}});const{r:s,g:l,b:d}=u("rgb");return(G,e)=>(h(),b("div",f,[e[3]||(e[3]=t("h3",null,"Attributes",-1)),t("ul",null,[t("li",null,[e[0]||(e[0]=t("code",null,"R",-1)),a(": Red component ("+o(i(s).min)+" to "+o(i(s).max)+")",1)]),t("li",null,[e[1]||(e[1]=t("code",null,"G",-1)),a(": Green component ("+o(i(l).min)+" to "+o(i(l).max)+")",1)]),t("li",null,[e[2]||(e[2]=t("code",null,"B",-1)),a(": Blue component ("+o(i(d).min)+" to "+o(i(d).max)+")",1)])]),e[4]||(e[4]=c("<h3>Historical Context</h3><p>RGB emerged alongside color television in the mid-20th century, grounded in trichromatic color vision theory—three cone cell types in the retina, each sensitive to a different band of wavelengths. It’s the native language of display hardware, mapping directly to the red, green, and blue subpixels of a screen.</p><hr><h2>Key Characteristics</h2><ol><li><strong>Additive model</strong>: colors are produced by combining light at different intensities. R + G + B at full intensity yields white.</li><li><strong>Device-dependent</strong>: the same RGB triplet can look different on different displays without a shared profile (hence sRGB standardization).</li><li><strong>Hardware-native</strong>: values map directly to display hardware, making RGB the <em>lingua franca</em> of digital color.</li></ol><h3>Advantages</h3><ul><li>Direct hardware implementation—no conversion needed for display</li><li>Intuitive for digital work (web, screens, rendering)</li><li>Wide adoption across all digital media standards</li></ul><h3>Disadvantages</h3><ul><li>Not perceptually uniform—equal numerical steps don’t produce equal perceptual steps</li><li>Device-dependent without calibration</li><li>Unintuitive for artistic color mixing (adjusting R to make a color “warmer” is indirect at best)</li></ul><h3>Color Gamut</h3><p>The sRGB gamut forms a cube from (0,0,0) black to (1,1,1) white. It covers a modest triangle in CIE xy chromaticity—roughly 35% of visible colors. Wider-gamut variants (Display P3, Adobe RGB, Rec. 2020) expand this triangle.</p><hr><h2>Color Model</h2><h3>Components</h3><ol><li><p><strong><code>R</code> (Red)</strong>: <code>R = 0 \\text{ (no red) to } 1 \\text{ (full red intensity)}</code></p></li><li><p><strong><code>G</code> (Green)</strong>: <code>G = 0 \\text{ (no green) to } 1 \\text{ (full green intensity)}</code></p></li><li><p><strong><code>B</code> (Blue)</strong>: <code>B = 0 \\text{ (no blue) to } 1 \\text{ (full blue intensity)}</code></p></li></ol><h3>sRGB and Linear RGB</h3><p>Two variants matter in practice:</p><ul><li><strong>sRGB</strong>: the standard for consumer displays and web content, with a piecewise gamma curve (~2.2 effective gamma). All CSS <code>rgb()</code> values are sRGB.</li><li><strong>Linear RGB</strong>: the same primaries without gamma correction. Used as an intermediate step in color math—blending, matrix transforms, and conversions to XYZ all operate in linear light.</li></ul><p>The transfer function between them is a piecewise curve: linear below a threshold (~0.04045), power-law above.</p><hr><h2>Color Conversions</h2><h3>RGB to XYZ</h3><p>Linearize sRGB via the inverse transfer function, then apply the 3×3 matrix:</p>",23)),r(i(n),{expression:"\\gamma^{-1}(c) = \\begin{cases} c / 12.92 & c \\leq 0.04045 \\\\ \\left(\\frac{c + 0.055}{1.055}\\right)^{2.4} & \\text{otherwise} \\end{cases}"}),r(i(n),{expression:"\\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix} = M_{\\text{sRGB}} \\begin{bmatrix} \\gamma^{-1}(R) \\\\ \\gamma^{-1}(G) \\\\ \\gamma^{-1}(B) \\end{bmatrix}"}),t("div",x,o(i(m)),1),e[5]||(e[5]=t("h3",null,"XYZ to RGB",-1)),e[6]||(e[6]=t("p",null,"Multiply by the inverse matrix, then apply gamma encoding:",-1)),r(i(n),{expression:"\\gamma(c) = \\begin{cases} 12.92\\, c & c \\leq 0.0031308 \\\\ 1.055\\, c^{1/2.4} - 0.055 & \\text{otherwise} \\end{cases}"}),r(i(n),{expression:"\\begin{bmatrix} R \\\\ G \\\\ B \\end{bmatrix} = \\gamma\\!\\left(M_{\\text{sRGB}}^{-1} \\begin{bmatrix} X \\\\ Y \\\\ Z \\end{bmatrix}\\right)"}),t("div",v,o(i(p)),1),e[7]||(e[7]=c("<hr><h2>Applications</h2><ol><li><strong>Display rendering</strong>: the final output space for all screen-based content.</li><li><strong>Web design</strong>: CSS <code>rgb()</code>, hex codes, and named colors all resolve to sRGB.</li><li><strong>Image formats</strong>: JPEG, PNG, and WebP store pixel data in sRGB.</li><li><strong>Compositing and blending</strong>: typically done in linear RGB to avoid gamma-induced artifacts.</li><li><strong>Color conversion hub</strong>: sRGB ↔ XYZ is the foundational bridge to every other color space in value.js.</li></ol>",3))]))}};export{N as default};
|