From 7175569eb832474bab979347d1c2e409d589897a Mon Sep 17 00:00:00 2001 From: Austin Rooks Date: Fri, 22 Mar 2024 20:30:07 -0500 Subject: [PATCH] create jobs outside of root, add os --- assets/images/100.png | Bin 0 -> 11411 bytes assets/images/os.png | Bin 0 -> 1267 bytes assets/styles.css | 2597 ++++++++++++++++++++++++++++++++++++++++- src/job.rs | 60 + src/lib.rs | 9 +- src/routes/root.rs | 61 +- 6 files changed, 2665 insertions(+), 62 deletions(-) create mode 100644 assets/images/100.png create mode 100644 assets/images/os.png create mode 100644 src/job.rs diff --git a/assets/images/100.png b/assets/images/100.png new file mode 100644 index 0000000000000000000000000000000000000000..eb668cf37bcfbcba70a7c4a3a94a801c8366b29d GIT binary patch literal 11411 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 N$Ve!PH;5XA{4dNk5@P@W literal 0 HcmV?d00001 diff --git a/assets/images/os.png b/assets/images/os.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a908ecf283896d235163b657fbf7e64ce9cf10 GIT binary patch literal 1267 zcmVXvk zhRJPrrTvDAYmbr`oIA6Ejc4y|#i?%|LM#^Idos3M<~VssVNoYC z-oMSBFPsg<>QzoN12}f#KKAF{g_V^Bs!La6>5{R-CoE}4J+4;w!rRjpHRX}e>5T9V zsU%S_;@!8T_$14hx4!v~3Ni6@Y^;j-dv2M%c>sF75y5M!(cLpba_o*HxdA+9^x?HP z>T&IQFMRU#w;8Hg9xA{-Hn~=_ofwM#uEd+DgEiGfBbq+Fm5SUe6X6 zoC?NE>zsK2D64}as-f)GVQYdLj(-tI$fhS_RV*#kLW3QVxXBGsYZqXtlpnpRw=n^b zliQA?Cmz7kQh?TmXowvi6NYZScYhEOF*VH3!To+n-oBXqFRSQ5#s|&l>l@{r;Z0bd zyxjvklNUoIG%a5f055O3NlIvdkVuRx#o;F5FDU#InOS$(cun~l!h^?UH8f;EX?ZuU z5HMG(9$`Q=RxQ*v#k=CmqcRhJJOEmq0p7AojFNm!M<%-aos1@2xTt`;+dMS<_`F$x z86lN)zC?}>_q0H(B{fK_tuY!BM-dMM4?s(s8c`c=um#6H55TLN-Fb_Li7?4lRY9fJ zBXyS)pJw~w+jE^H_j-gZcOrX~M09)O=4`VpV_6Pu?@ z-tvkYZ*l&~2iW^rI};`ve&+?&@C>LRatj1gXWXcfskrAcA~M!!MV0BQ?DVRHSyl=Y`C4FQ$k-BxSU~5=i;wk&2+?rDia2 zIGleExraK~bK%z^h$dAr)l5h@QR8$W6%2nr2ekjL!L8eBwl{g32M+A>n*^5pb|WJl zHIGH}APW!^4jIvOOATd@j)k5IQ|eBs$>DUs1VI15DE8#E;o@Z_2FL5#nkZses01m* z$y8k!B>6vhqyr_Fl%Nruu!SzxM5>*T@}?Al{^Ds5pBBKxN~&HI41I}6Bq9jMLu=L( znV@Az2}xfzQ^{s--;?t}GSkif%iPll{4W}lId0A7yg8-qxhgiB{L=P(;q3Q`tUXr} d{m!H9`QPhe7m=5q2t5D*002ovPDHLkV1gkBM^yj- literal 0 HcmV?d00001 diff --git a/assets/styles.css b/assets/styles.css index 051970b..514a7f0 100644 --- a/assets/styles.css +++ b/assets/styles.css @@ -1 +1,2596 @@ -/*! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}html{scroll-behavior:smooth}h1{font-size:2rem;font-weight:bolder;margin-bottom:2rem}.prose a,.prose a:hover{color:#0f6fff}@media (prefers-color-scheme:dark){.prose a{color:#2d7ef9}.prose a:hover{color:#93beff}}@media screen and (min-width:640px){h1{font-size:3rem}}h3{margin-bottom:.5rem}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:initial;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(video):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-sm :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-base :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-base :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-lg :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.8em;margin-top:.8em}.prose-xl :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-2xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-bottom:.8333333em;margin-top:.8333333em}.prose-2xl :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-2xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-x-4{left:-1rem;right:-1rem}.-inset-y-6{bottom:-1.5rem;top:-1.5rem}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.top-3{top:.75rem}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-m-1{margin:-.25rem}.-m-1\.5{margin:-.375rem}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.m-auto{margin:auto}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.-mb-2{margin-bottom:-.5rem}.-ml-1{margin-left:-.25rem}.-ml-2{margin-left:-.5rem}.-mt-px{margin-top:-1px}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-\[-44px\]{margin-bottom:-44px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-5{margin-right:1.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-28{margin-top:7rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[100px\]{height:100px}.h-screen{height:100vh}.min-h-\[50vh\]{min-height:50vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[100px\]{width:100px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.translate-y-\[100vh\]{--tw-translate-y:100vh}.scale-100,.translate-y-\[100vh\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-6{gap:1.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-6{row-gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-black\/10{border-color:#0000001a}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-zinc-100{--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity))}.bg-black\/5{background-color:#0000000d}.bg-gray-500\/5{background-color:#6b72800d}.bg-primary-50\/10{background-color:#f8fafc1a}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/20{background-color:#fff3}.bg-white\/5{background-color:#ffffff0d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-emerald-500{--tw-gradient-from:#10b981 var(--tw-gradient-from-position);--tw-gradient-to:#10b98100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-secondary-500{--tw-gradient-from:#0f6fff var(--tw-gradient-from-position);--tw-gradient-to:#0f6fff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-teal-500{--tw-gradient-to:#14b8a600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#14b8a6 var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-emerald-500{--tw-gradient-to:#10b981 var(--tw-gradient-to-position)}.to-secondary-500{--tw-gradient-to:#0f6fff var(--tw-gradient-to-position)}.fill-black{fill:#000}.fill-zinc-500{fill:#71717a}.stroke-primary-800{stroke:#1e293b}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-16{padding-bottom:4rem}.pb-3{padding-bottom:.75rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pt-10{padding-top:2.5rem}.pt-14{padding-top:3.5rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.leading-8{line-height:2rem}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-zinc-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-offset-2{outline-offset:2px}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))}.ring-primary-600\/20{--tw-ring-color:#47556933}.ring-primary-800\/50{--tw-ring-color:#1e293b80}.ring-primary-900\/5{--tw-ring-color:#0f172a0d}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-lg{-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)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition{transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (prefers-color-scheme:dark){.dark\:prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-secondary-300:hover{--tw-border-opacity:1;border-color:rgb(147 190 255/var(--tw-border-opacity))}.hover\:bg-transparent:hover{background-color:initial}.hover\:text-secondary-500:hover{--tw-text-opacity:1;color:rgb(15 111 255/var(--tw-text-opacity))}.hover\:ring-secondary-500:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(15 111 255/var(--tw-ring-opacity))}.active\:transition-none:active{transition-property:none}.group:hover .group-hover\:-translate-y-1{--tw-translate-y:-0.25rem}.group:hover .group-hover\:-translate-y-1,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.group:hover .group-hover\:translate-y-1{--tw-translate-y:0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:fill-secondary-400{fill:#2d7ef9}.group:hover .group-hover\:fill-secondary-500{fill:#0f6fff}.group:hover .group-hover\:fill-zinc-600{fill:#52525b}.group:hover .group-hover\:stroke-secondary-500{stroke:#0f6fff}.group:hover .group-hover\:text-secondary-400{--tw-text-opacity:1;color:rgb(45 126 249/var(--tw-text-opacity))}.group:hover .group-hover\:text-secondary-500{--tw-text-opacity:1;color:rgb(15 111 255/var(--tw-text-opacity))}.group:active .group-active\:stroke-primary-600{stroke:#475569}@media (prefers-color-scheme:dark){.dark\:border{border-width:1px}.dark\:border-primary-700\/50{border-color:#33415580}.dark\:border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity))}.dark\:border-white\/10{border-color:#ffffff1a}.dark\:border-zinc-700\/40{border-color:#3f3f4666}.dark\:bg-black\/20{background-color:#0003}.dark\:bg-black\/5{background-color:#0000000d}.dark\:bg-primary-700\/20{background-color:#33415533}.dark\:bg-primary-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.dark\:bg-primary-950\/80{background-color:#020617cc}.dark\:bg-transparent{background-color:initial}.dark\:bg-white\/5{background-color:#ffffff0d}.dark\:fill-white{fill:#fff}.dark\:fill-zinc-400{fill:#a1a1aa}.dark\:stroke-primary-300{stroke:#cbd5e1}.dark\:text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:text-primary-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.dark\:text-primary-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.dark\:text-primary-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.dark\:text-primary-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.dark\:text-primary-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity))}.dark\:text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.dark\:shadow-primary-500\/90{--tw-shadow-color:#64748be6;--tw-shadow:var(--tw-shadow-colored)}.dark\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.dark\:ring-primary-100{--tw-ring-opacity:1;--tw-ring-color:rgb(241 245 249/var(--tw-ring-opacity))}.dark\:ring-primary-200\/50{--tw-ring-color:#e2e8f080}.dark\:ring-primary-300\/20{--tw-ring-color:#cbd5e133}.dark\:hover\:border-secondary-600:hover{--tw-border-opacity:1;border-color:rgb(15 111 255/var(--tw-border-opacity))}.dark\:hover\:text-secondary-400:hover{--tw-text-opacity:1;color:rgb(45 126 249/var(--tw-text-opacity))}.dark\:hover\:ring-secondary-400:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(45 126 249/var(--tw-ring-opacity))}.group:hover .dark\:group-hover\:fill-zinc-300{fill:#d4d4d8}.group:hover .dark\:group-hover\:stroke-secondary-400{stroke:#2d7ef9}.group:hover .group-hover\:dark\:text-primary-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.group:hover .group-hover\:dark\:text-secondary-400{--tw-text-opacity:1;color:rgb(45 126 249/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:-inset-x-6{left:-1.5rem;right:-1.5rem}.sm\:m-auto{margin:auto}.sm\:mx-3{margin-left:.75rem;margin-right:.75rem}.sm\:mb-40{margin-bottom:10rem}.sm\:mt-28{margin-top:7rem}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:h-4{height:1rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:rounded-2xl{border-radius:1rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-right:1.5rem}.sm\:pl-6,.sm\:px-6{padding-left:1.5rem}.sm\:pr-16{padding-right:4rem}.sm\:pr-4{padding-right:1rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}@media (prefers-reduced-motion:no-preference){.sm\:motion-safe\:hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}}@media (min-width:768px){.md\:-mt-px{margin-top:-1px}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-4{width:1rem}.md\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-\[10\.5rem\]{top:10.5rem}.lg\:mx-3{margin-left:.75rem;margin-right:.75rem}.lg\:mt-0{margin-top:0}.lg\:mt-28{margin-top:7rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[85vh\]{height:85vh}.lg\:max-h-screen{max-height:100vh}.lg\:w-1\/2{width:50%}.lg\:max-w-5xl{max-width:64rem}.lg\:max-w-full{max-width:100%}.lg\:max-w-md{max-width:28rem}.lg\:flex-col{flex-direction:column}.lg\:justify-between{justify-content:space-between}.lg\:gap-4{gap:1rem}.lg\:px-1{padding-left:.25rem;padding-right:.25rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pr-20{padding-right:5rem}}@media (min-width:1280px){.xl\:mx-auto{margin-left:auto;margin-right:auto}.xl\:max-w-6xl{max-width:72rem}} \ No newline at end of file +/* +! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden] { + display: none; +} + +html { + scroll-behavior: smooth; +} + +h1 { + font-size: 2rem; + font-weight: bolder; + margin-bottom: 2rem; +} + +.prose a { + color: #0f6fff; +} + +.prose a:hover { + color: #0f6fff; +} + +@media (prefers-color-scheme: dark) { + .prose a { + color: #2D7EF9; + } + + .prose a:hover { + color: #93BEFF; + } +} + +@media screen and (min-width: 640px) { + h1 { + font-size: 3rem; + } +} + +h3 { + margin-bottom: 0.5rem; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.prose { + color: var(--tw-prose-body); + max-width: 65ch; +} + +.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-lead); + font-size: 1.25em; + line-height: 1.6; + margin-top: 1.2em; + margin-bottom: 1.2em; +} + +.prose :where(a):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-links); + text-decoration: underline; + font-weight: 500; +} + +.prose :where(strong):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; +} + +.prose :where(a strong):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote strong):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th strong):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(ol):not(:where([class~="not-prose"] *)) { + list-style-type: decimal; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="A" s]):not(:where([class~="not-prose"] *)) { + list-style-type: upper-alpha; +} + +.prose :where(ol[type="a" s]):not(:where([class~="not-prose"] *)) { + list-style-type: lower-alpha; +} + +.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="I" s]):not(:where([class~="not-prose"] *)) { + list-style-type: upper-roman; +} + +.prose :where(ol[type="i" s]):not(:where([class~="not-prose"] *)) { + list-style-type: lower-roman; +} + +.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)) { + list-style-type: decimal; +} + +.prose :where(ul):not(:where([class~="not-prose"] *)) { + list-style-type: disc; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-left: 1.625em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker { + font-weight: 400; + color: var(--tw-prose-counters); +} + +.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker { + color: var(--tw-prose-bullets); +} + +.prose :where(hr):not(:where([class~="not-prose"] *)) { + border-color: var(--tw-prose-hr); + border-top-width: 1px; + margin-top: 3em; + margin-bottom: 3em; +} + +.prose :where(blockquote):not(:where([class~="not-prose"] *)) { + font-weight: 500; + font-style: italic; + color: var(--tw-prose-quotes); + border-left-width: 0.25rem; + border-left-color: var(--tw-prose-quote-borders); + quotes: "\201C""\201D""\2018""\2019"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-left: 1em; +} + +.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *))::before { + content: open-quote; +} + +.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *))::after { + content: close-quote; +} + +.prose :where(h1):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 800; + font-size: 2.25em; + margin-top: 0; + margin-bottom: 0.8888889em; + line-height: 1.1111111; +} + +.prose :where(h1 strong):not(:where([class~="not-prose"] *)) { + font-weight: 900; + color: inherit; +} + +.prose :where(h2):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 700; + font-size: 1.5em; + margin-top: 2em; + margin-bottom: 1em; + line-height: 1.3333333; +} + +.prose :where(h2 strong):not(:where([class~="not-prose"] *)) { + font-weight: 800; + color: inherit; +} + +.prose :where(h3):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; +} + +.prose :where(h3 strong):not(:where([class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.prose :where(h4):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; +} + +.prose :where(h4 strong):not(:where([class~="not-prose"] *)) { + font-weight: 700; + color: inherit; +} + +.prose :where(img):not(:where([class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(figure > *):not(:where([class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; +} + +.prose :where(figcaption):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-captions); + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; +} + +.prose :where(code):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-code); + font-weight: 600; + font-size: 0.875em; +} + +.prose :where(code):not(:where([class~="not-prose"] *))::before { + content: "`"; +} + +.prose :where(code):not(:where([class~="not-prose"] *))::after { + content: "`"; +} + +.prose :where(a code):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h1 code):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(h2 code):not(:where([class~="not-prose"] *)) { + color: inherit; + font-size: 0.875em; +} + +.prose :where(h3 code):not(:where([class~="not-prose"] *)) { + color: inherit; + font-size: 0.9em; +} + +.prose :where(h4 code):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(blockquote code):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(thead th code):not(:where([class~="not-prose"] *)) { + color: inherit; +} + +.prose :where(pre):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-pre-code); + background-color: var(--tw-prose-pre-bg); + overflow-x: auto; + font-weight: 400; + font-size: 0.875em; + line-height: 1.7142857; + margin-top: 1.7142857em; + margin-bottom: 1.7142857em; + border-radius: 0.375rem; + padding-top: 0.8571429em; + padding-right: 1.1428571em; + padding-bottom: 0.8571429em; + padding-left: 1.1428571em; +} + +.prose :where(pre code):not(:where([class~="not-prose"] *)) { + background-color: transparent; + border-width: 0; + border-radius: 0; + padding: 0; + font-weight: inherit; + color: inherit; + font-size: inherit; + font-family: inherit; + line-height: inherit; +} + +.prose :where(pre code):not(:where([class~="not-prose"] *))::before { + content: none; +} + +.prose :where(pre code):not(:where([class~="not-prose"] *))::after { + content: none; +} + +.prose :where(table):not(:where([class~="not-prose"] *)) { + width: 100%; + table-layout: auto; + text-align: left; + margin-top: 2em; + margin-bottom: 2em; + font-size: 0.875em; + line-height: 1.7142857; +} + +.prose :where(thead):not(:where([class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-th-borders); +} + +.prose :where(thead th):not(:where([class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + vertical-align: bottom; + padding-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 0.5714286em; +} + +.prose :where(tbody tr):not(:where([class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-td-borders); +} + +.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)) { + border-bottom-width: 0; +} + +.prose :where(tbody td):not(:where([class~="not-prose"] *)) { + vertical-align: baseline; +} + +.prose :where(tfoot):not(:where([class~="not-prose"] *)) { + border-top-width: 1px; + border-top-color: var(--tw-prose-th-borders); +} + +.prose :where(tfoot td):not(:where([class~="not-prose"] *)) { + vertical-align: top; +} + +.prose { + --tw-prose-body: #374151; + --tw-prose-headings: #111827; + --tw-prose-lead: #4b5563; + --tw-prose-links: #111827; + --tw-prose-bold: #111827; + --tw-prose-counters: #6b7280; + --tw-prose-bullets: #d1d5db; + --tw-prose-hr: #e5e7eb; + --tw-prose-quotes: #111827; + --tw-prose-quote-borders: #e5e7eb; + --tw-prose-captions: #6b7280; + --tw-prose-code: #111827; + --tw-prose-pre-code: #e5e7eb; + --tw-prose-pre-bg: #1f2937; + --tw-prose-th-borders: #d1d5db; + --tw-prose-td-borders: #e5e7eb; + --tw-prose-invert-body: #d1d5db; + --tw-prose-invert-headings: #fff; + --tw-prose-invert-lead: #9ca3af; + --tw-prose-invert-links: #fff; + --tw-prose-invert-bold: #fff; + --tw-prose-invert-counters: #9ca3af; + --tw-prose-invert-bullets: #4b5563; + --tw-prose-invert-hr: #374151; + --tw-prose-invert-quotes: #f3f4f6; + --tw-prose-invert-quote-borders: #374151; + --tw-prose-invert-captions: #9ca3af; + --tw-prose-invert-code: #fff; + --tw-prose-invert-pre-code: #d1d5db; + --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); + --tw-prose-invert-th-borders: #4b5563; + --tw-prose-invert-td-borders: #374151; + font-size: 1rem; + line-height: 1.75; +} + +.prose :where(p):not(:where([class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; +} + +.prose :where(video):not(:where([class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(figure):not(:where([class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; +} + +.prose :where(li):not(:where([class~="not-prose"] *)) { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.prose :where(ol > li):not(:where([class~="not-prose"] *)) { + padding-left: 0.375em; +} + +.prose :where(ul > li):not(:where([class~="not-prose"] *)) { + padding-left: 0.375em; +} + +.prose :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose :where(hr + *):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h2 + *):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h3 + *):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(h4 + *):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)) { + padding-left: 0; +} + +.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)) { + padding-right: 0; +} + +.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"] *)) { + padding-top: 0.5714286em; + padding-right: 0.5714286em; + padding-bottom: 0.5714286em; + padding-left: 0.5714286em; +} + +.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"] *)) { + padding-left: 0; +} + +.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"] *)) { + padding-right: 0; +} + +.prose :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.prose-sm :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.5714286em; + margin-bottom: 0.5714286em; +} + +.prose-sm :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.1428571em; +} + +.prose-sm :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.1428571em; +} + +.prose-sm :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.1428571em; +} + +.prose-sm :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.1428571em; +} + +.prose-sm :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose-sm :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.prose-base :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; +} + +.prose-base :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose-base :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose-base :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.25em; +} + +.prose-base :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.25em; +} + +.prose-base :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose-base :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.prose-lg :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.8888889em; + margin-bottom: 0.8888889em; +} + +.prose-lg :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.3333333em; +} + +.prose-lg :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.3333333em; +} + +.prose-lg :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.3333333em; +} + +.prose-lg :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.3333333em; +} + +.prose-lg :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose-lg :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.prose-xl :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.8em; + margin-bottom: 0.8em; +} + +.prose-xl :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.2em; +} + +.prose-xl :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.2em; +} + +.prose-xl :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.2em; +} + +.prose-xl :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.2em; +} + +.prose-xl :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose-xl :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.prose-2xl :where(.prose > ul > li p):not(:where([class~="not-prose"] *)) { + margin-top: 0.8333333em; + margin-bottom: 0.8333333em; +} + +.prose-2xl :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.3333333em; +} + +.prose-2xl :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.3333333em; +} + +.prose-2xl :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"] *)) { + margin-top: 1.3333333em; +} + +.prose-2xl :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 1.3333333em; +} + +.prose-2xl :where(.prose > :first-child):not(:where([class~="not-prose"] *)) { + margin-top: 0; +} + +.prose-2xl :where(.prose > :last-child):not(:where([class~="not-prose"] *)) { + margin-bottom: 0; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.sticky { + position: sticky; +} + +.-inset-x-4 { + left: -1rem; + right: -1rem; +} + +.-inset-y-6 { + top: -1.5rem; + bottom: -1.5rem; +} + +.inset-x-0 { + left: 0px; + right: 0px; +} + +.bottom-0 { + bottom: 0px; +} + +.left-0 { + left: 0px; +} + +.right-0 { + right: 0px; +} + +.top-0 { + top: 0px; +} + +.top-3 { + top: 0.75rem; +} + +.isolate { + isolation: isolate; +} + +.z-0 { + z-index: 0; +} + +.z-10 { + z-index: 10; +} + +.z-20 { + z-index: 20; +} + +.z-50 { + z-index: 50; +} + +.-m-1 { + margin: -0.25rem; +} + +.-m-1\.5 { + margin: -0.375rem; +} + +.-m-2 { + margin: -0.5rem; +} + +.-m-2\.5 { + margin: -0.625rem; +} + +.m-auto { + margin: auto; +} + +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.-mb-2 { + margin-bottom: -0.5rem; +} + +.-ml-1 { + margin-left: -0.25rem; +} + +.-ml-2 { + margin-left: -0.5rem; +} + +.-mt-px { + margin-top: -1px; +} + +.mb-12 { + margin-bottom: 3rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.mb-\[-44px\] { + margin-bottom: -44px; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mr-5 { + margin-right: 1.25rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.mt-16 { + margin-top: 4rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-20 { + margin-top: 5rem; +} + +.mt-28 { + margin-top: 7rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-32 { + margin-top: 8rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-12 { + height: 3rem; +} + +.h-16 { + height: 4rem; +} + +.h-2 { + height: 0.5rem; +} + +.h-4 { + height: 1rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-6 { + height: 1.5rem; +} + +.h-7 { + height: 1.75rem; +} + +.h-8 { + height: 2rem; +} + +.h-\[100px\] { + height: 100px; +} + +.h-screen { + height: 100vh; +} + +.min-h-\[50vh\] { + min-height: 50vh; +} + +.min-h-screen { + min-height: 100vh; +} + +.w-0 { + width: 0px; +} + +.w-12 { + width: 3rem; +} + +.w-16 { + width: 4rem; +} + +.w-2 { + width: 0.5rem; +} + +.w-4 { + width: 1rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-6 { + width: 1.5rem; +} + +.w-7 { + width: 1.75rem; +} + +.w-8 { + width: 2rem; +} + +.w-\[100px\] { + width: 100px; +} + +.w-full { + width: 100%; +} + +.w-screen { + width: 100vw; +} + +.max-w-2xl { + max-width: 42rem; +} + +.max-w-6xl { + max-width: 72rem; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-auto { + flex: 1 1 auto; +} + +.flex-none { + flex: none; +} + +.translate-y-\[100vh\] { + --tw-translate-y: 100vh; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-100 { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-90 { + --tw-scale-x: .9; + --tw-scale-y: .9; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-95 { + --tw-scale-x: .95; + --tw-scale-y: .95; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +.animate-spin { + animation: spin 1s linear infinite; +} + +.cursor-pointer { + cursor: pointer; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.flex-row { + flex-direction: row; +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.items-center { + align-items: center; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.gap-6 { + gap: 1.5rem; +} + +.gap-x-6 { + -moz-column-gap: 1.5rem; + column-gap: 1.5rem; +} + +.gap-y-1 { + row-gap: 0.25rem; +} + +.gap-y-6 { + row-gap: 1.5rem; +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + +.space-y-16 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(4rem * var(--tw-space-y-reverse)); +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.self-center { + align-self: center; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-2xl { + border-radius: 1rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.border { + border-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-t-2 { + border-top-width: 2px; +} + +.border-black\/10 { + border-color: rgb(0 0 0 / 0.1); +} + +.border-slate-200 { + --tw-border-opacity: 1; + border-color: rgb(226 232 240 / var(--tw-border-opacity)); +} + +.border-transparent { + border-color: transparent; +} + +.border-zinc-100 { + --tw-border-opacity: 1; + border-color: rgb(244 244 245 / var(--tw-border-opacity)); +} + +.bg-black\/5 { + background-color: rgb(0 0 0 / 0.05); +} + +.bg-gray-500\/5 { + background-color: rgb(107 114 128 / 0.05); +} + +.bg-primary-50\/10 { + background-color: rgb(248 250 252 / 0.1); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-white\/10 { + background-color: rgb(255 255 255 / 0.1); +} + +.bg-white\/20 { + background-color: rgb(255 255 255 / 0.2); +} + +.bg-white\/5 { + background-color: rgb(255 255 255 / 0.05); +} + +.bg-gradient-to-b { + background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); +} + +.bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} + +.from-emerald-500 { + --tw-gradient-from: #10b981 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-secondary-500 { + --tw-gradient-from: #0f6fff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(15 111 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.via-teal-500 { + --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #14b8a6 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.to-emerald-500 { + --tw-gradient-to: #10b981 var(--tw-gradient-to-position); +} + +.to-secondary-500 { + --tw-gradient-to: #0f6fff var(--tw-gradient-to-position); +} + +.fill-black { + fill: #000; +} + +.fill-zinc-500 { + fill: #71717a; +} + +.stroke-primary-800 { + stroke: #1e293b; +} + +.p-1 { + padding: 0.25rem; +} + +.p-2 { + padding: 0.5rem; +} + +.p-2\.5 { + padding: 0.625rem; +} + +.p-4 { + padding: 1rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.pb-16 { + padding-bottom: 4rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pl-1 { + padding-left: 0.25rem; +} + +.pl-2 { + padding-left: 0.5rem; +} + +.pl-3 { + padding-left: 0.75rem; +} + +.pr-1 { + padding-right: 0.25rem; +} + +.pr-2 { + padding-right: 0.5rem; +} + +.pr-6 { + padding-right: 1.5rem; +} + +.pt-10 { + padding-top: 2.5rem; +} + +.pt-14 { + padding-top: 3.5rem; +} + +.pt-32 { + padding-top: 8rem; +} + +.pt-4 { + padding-top: 1rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.align-middle { + vertical-align: middle; +} + +.font-mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +.font-sans { + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.font-bold { + font-weight: 700; +} + +.font-extralight { + font-weight: 200; +} + +.font-light { + font-weight: 300; +} + +.font-medium { + font-weight: 500; +} + +.font-semibold { + font-weight: 600; +} + +.leading-6 { + line-height: 1.5rem; +} + +.leading-8 { + line-height: 2rem; +} + +.leading-normal { + line-height: 1.5; +} + +.leading-relaxed { + line-height: 1.625; +} + +.tracking-tight { + letter-spacing: -0.025em; +} + +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.text-primary-400 { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity)); +} + +.text-primary-500 { + --tw-text-opacity: 1; + color: rgb(100 116 139 / var(--tw-text-opacity)); +} + +.text-primary-600 { + --tw-text-opacity: 1; + color: rgb(71 85 105 / var(--tw-text-opacity)); +} + +.text-primary-700 { + --tw-text-opacity: 1; + color: rgb(51 65 85 / var(--tw-text-opacity)); +} + +.text-primary-800 { + --tw-text-opacity: 1; + color: rgb(30 41 59 / var(--tw-text-opacity)); +} + +.text-slate-500 { + --tw-text-opacity: 1; + color: rgb(100 116 139 / var(--tw-text-opacity)); +} + +.text-zinc-400 { + --tw-text-opacity: 1; + color: rgb(161 161 170 / var(--tw-text-opacity)); +} + +.text-zinc-500 { + --tw-text-opacity: 1; + color: rgb(113 113 122 / var(--tw-text-opacity)); +} + +.text-zinc-800 { + --tw-text-opacity: 1; + color: rgb(39 39 42 / var(--tw-text-opacity)); +} + +.opacity-0 { + opacity: 0; +} + +.opacity-100 { + opacity: 1; +} + +.opacity-25 { + opacity: 0.25; +} + +.opacity-75 { + opacity: 0.75; +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.outline-offset-2 { + outline-offset: 2px; +} + +.ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.ring-black { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); +} + +.ring-primary-600\/20 { + --tw-ring-color: rgb(71 85 105 / 0.2); +} + +.ring-primary-800\/50 { + --tw-ring-color: rgb(30 41 59 / 0.5); +} + +.ring-primary-900\/5 { + --tw-ring-color: rgb(15 23 42 / 0.05); +} + +.backdrop-blur { + --tw-backdrop-blur: blur(8px); + -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); +} + +.backdrop-blur-lg { + --tw-backdrop-blur: blur(16px); + -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, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.duration-150 { + transition-duration: 150ms; +} + +.duration-300 { + transition-duration: 300ms; +} + +.ease-in { + transition-timing-function: cubic-bezier(0.4, 0, 1, 1); +} + +.ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +@media (prefers-color-scheme: dark) { + .dark\:prose-invert { + --tw-prose-body: var(--tw-prose-invert-body); + --tw-prose-headings: var(--tw-prose-invert-headings); + --tw-prose-lead: var(--tw-prose-invert-lead); + --tw-prose-links: var(--tw-prose-invert-links); + --tw-prose-bold: var(--tw-prose-invert-bold); + --tw-prose-counters: var(--tw-prose-invert-counters); + --tw-prose-bullets: var(--tw-prose-invert-bullets); + --tw-prose-hr: var(--tw-prose-invert-hr); + --tw-prose-quotes: var(--tw-prose-invert-quotes); + --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders); + --tw-prose-captions: var(--tw-prose-invert-captions); + --tw-prose-code: var(--tw-prose-invert-code); + --tw-prose-pre-code: var(--tw-prose-invert-pre-code); + --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg); + --tw-prose-th-borders: var(--tw-prose-invert-th-borders); + --tw-prose-td-borders: var(--tw-prose-invert-td-borders); + } +} + +.hover\:scale-110:hover { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:cursor-pointer:hover { + cursor: pointer; +} + +.hover\:border-secondary-300:hover { + --tw-border-opacity: 1; + border-color: rgb(147 190 255 / var(--tw-border-opacity)); +} + +.hover\:bg-transparent:hover { + background-color: transparent; +} + +.hover\:text-secondary-500:hover { + --tw-text-opacity: 1; + color: rgb(15 111 255 / var(--tw-text-opacity)); +} + +.hover\:ring-secondary-500:hover { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(15 111 255 / var(--tw-ring-opacity)); +} + +.active\:transition-none:active { + transition-property: none; +} + +.group:hover .group-hover\:-translate-y-1 { + --tw-translate-y: -0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:translate-x-1 { + --tw-translate-x: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:translate-y-1 { + --tw-translate-y: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:fill-secondary-400 { + fill: #2D7EF9; +} + +.group:hover .group-hover\:fill-secondary-500 { + fill: #0f6fff; +} + +.group:hover .group-hover\:fill-zinc-600 { + fill: #52525b; +} + +.group:hover .group-hover\:stroke-secondary-500 { + stroke: #0f6fff; +} + +.group:hover .group-hover\:text-secondary-400 { + --tw-text-opacity: 1; + color: rgb(45 126 249 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:text-secondary-500 { + --tw-text-opacity: 1; + color: rgb(15 111 255 / var(--tw-text-opacity)); +} + +.group:active .group-active\:stroke-primary-600 { + stroke: #475569; +} + +@media (prefers-color-scheme: dark) { + .dark\:border { + border-width: 1px; + } + + .dark\:border-primary-700\/50 { + border-color: rgb(51 65 85 / 0.5); + } + + .dark\:border-slate-700 { + --tw-border-opacity: 1; + border-color: rgb(51 65 85 / var(--tw-border-opacity)); + } + + .dark\:border-white\/10 { + border-color: rgb(255 255 255 / 0.1); + } + + .dark\:border-zinc-700\/40 { + border-color: rgb(63 63 70 / 0.4); + } + + .dark\:bg-black\/20 { + background-color: rgb(0 0 0 / 0.2); + } + + .dark\:bg-black\/5 { + background-color: rgb(0 0 0 / 0.05); + } + + .dark\:bg-primary-700\/20 { + background-color: rgb(51 65 85 / 0.2); + } + + .dark\:bg-primary-800 { + --tw-bg-opacity: 1; + background-color: rgb(30 41 59 / var(--tw-bg-opacity)); + } + + .dark\:bg-primary-950\/80 { + background-color: rgb(2 6 23 / 0.8); + } + + .dark\:bg-transparent { + background-color: transparent; + } + + .dark\:bg-white\/5 { + background-color: rgb(255 255 255 / 0.05); + } + + .dark\:fill-white { + fill: #fff; + } + + .dark\:fill-zinc-400 { + fill: #a1a1aa; + } + + .dark\:stroke-primary-300 { + stroke: #cbd5e1; + } + + .dark\:text-gray-100 { + --tw-text-opacity: 1; + color: rgb(243 244 246 / var(--tw-text-opacity)); + } + + .dark\:text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); + } + + .dark\:text-primary-100 { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); + } + + .dark\:text-primary-200 { + --tw-text-opacity: 1; + color: rgb(226 232 240 / var(--tw-text-opacity)); + } + + .dark\:text-primary-300 { + --tw-text-opacity: 1; + color: rgb(203 213 225 / var(--tw-text-opacity)); + } + + .dark\:text-primary-400 { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity)); + } + + .dark\:text-primary-600 { + --tw-text-opacity: 1; + color: rgb(71 85 105 / var(--tw-text-opacity)); + } + + .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } + + .dark\:text-zinc-200 { + --tw-text-opacity: 1; + color: rgb(228 228 231 / var(--tw-text-opacity)); + } + + .dark\:text-zinc-400 { + --tw-text-opacity: 1; + color: rgb(161 161 170 / var(--tw-text-opacity)); + } + + .dark\:shadow-primary-500\/90 { + --tw-shadow-color: rgb(100 116 139 / 0.9); + --tw-shadow: var(--tw-shadow-colored); + } + + .dark\:ring-0 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + } + + .dark\:ring-primary-100 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity)); + } + + .dark\:ring-primary-200\/50 { + --tw-ring-color: rgb(226 232 240 / 0.5); + } + + .dark\:ring-primary-300\/20 { + --tw-ring-color: rgb(203 213 225 / 0.2); + } + + .dark\:hover\:border-secondary-600:hover { + --tw-border-opacity: 1; + border-color: rgb(15 111 255 / var(--tw-border-opacity)); + } + + .dark\:hover\:text-secondary-400:hover { + --tw-text-opacity: 1; + color: rgb(45 126 249 / var(--tw-text-opacity)); + } + + .dark\:hover\:ring-secondary-400:hover { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(45 126 249 / var(--tw-ring-opacity)); + } + + .group:hover .dark\:group-hover\:fill-zinc-300 { + fill: #d4d4d8; + } + + .group:hover .dark\:group-hover\:stroke-secondary-400 { + stroke: #2D7EF9; + } + + .group:hover .group-hover\:dark\:text-primary-100 { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); + } + + .group:hover .group-hover\:dark\:text-secondary-400 { + --tw-text-opacity: 1; + color: rgb(45 126 249 / var(--tw-text-opacity)); + } +} + +@media (min-width: 640px) { + .sm\:-inset-x-6 { + left: -1.5rem; + right: -1.5rem; + } + + .sm\:m-auto { + margin: auto; + } + + .sm\:mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; + } + + .sm\:mb-40 { + margin-bottom: 10rem; + } + + .sm\:mt-28 { + margin-top: 7rem; + } + + .sm\:block { + display: block; + } + + .sm\:hidden { + display: none; + } + + .sm\:h-4 { + height: 1rem; + } + + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:rounded-2xl { + border-radius: 1rem; + } + + .sm\:p-8 { + padding: 2rem; + } + + .sm\:px-0 { + padding-left: 0px; + padding-right: 0px; + } + + .sm\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .sm\:pl-6 { + padding-left: 1.5rem; + } + + .sm\:pr-16 { + padding-right: 4rem; + } + + .sm\:pr-4 { + padding-right: 1rem; + } + + .sm\:pt-2 { + padding-top: 0.5rem; + } + + .sm\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .sm\:text-5xl { + font-size: 3rem; + line-height: 1; + } + + .sm\:text-xl { + font-size: 1.25rem; + line-height: 1.75rem; + } + + @media (prefers-reduced-motion: no-preference) { + .sm\:motion-safe\:hover\:scale-110:hover { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + } + } +} + +@media (min-width: 768px) { + .md\:-mt-px { + margin-top: -1px; + } + + .md\:flex { + display: flex; + } + + .md\:hidden { + display: none; + } + + .md\:w-4 { + width: 1rem; + } + + .md\:gap-x-12 { + -moz-column-gap: 3rem; + column-gap: 3rem; + } +} + +@media (min-width: 1024px) { + .lg\:sticky { + position: sticky; + } + + .lg\:top-\[10\.5rem\] { + top: 10.5rem; + } + + .lg\:mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; + } + + .lg\:mt-0 { + margin-top: 0px; + } + + .lg\:mt-28 { + margin-top: 7rem; + } + + .lg\:block { + display: block; + } + + .lg\:flex { + display: flex; + } + + .lg\:hidden { + display: none; + } + + .lg\:h-\[85vh\] { + height: 85vh; + } + + .lg\:max-h-screen { + max-height: 100vh; + } + + .lg\:w-1\/2 { + width: 50%; + } + + .lg\:max-w-5xl { + max-width: 64rem; + } + + .lg\:max-w-full { + max-width: 100%; + } + + .lg\:max-w-md { + max-width: 28rem; + } + + .lg\:flex-col { + flex-direction: column; + } + + .lg\:justify-between { + justify-content: space-between; + } + + .lg\:gap-4 { + gap: 1rem; + } + + .lg\:px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; + } + + .lg\:px-8 { + padding-left: 2rem; + padding-right: 2rem; + } + + .lg\:pr-20 { + padding-right: 5rem; + } +} + +@media (min-width: 1280px) { + .xl\:mx-auto { + margin-left: auto; + margin-right: auto; + } + + .xl\:max-w-6xl { + max-width: 72rem; + } +} diff --git a/src/job.rs b/src/job.rs new file mode 100644 index 0000000..60945b3 --- /dev/null +++ b/src/job.rs @@ -0,0 +1,60 @@ +#[derive(serde::Serialize, Clone)] +pub struct Job { + company: &'static str, + title: &'static str, + start_year: &'static str, + end_year: &'static str, + image: &'static str, + tech: [&'static str; 5], + description: &'static str, + link: &'static str, +} + +pub static JOBS: [Job; 3] = [ + Job { + company: "Northwestern Mutual", + title: "Software Engineer", + start_year: "2022", + end_year: "Present", + image: "nm.webp", + tech: ["React", "Redux", "TypeScript", "Express", "Graphql"], + description: "I work on the client website building new products, \ + supporting legacy apps, and contributing to interal libraries \ + to support easier development. Helped transition the org to \ + Graphql. Lead the team in testing and performance strategies \ + for our React code and subgraph.

Was recognized as \ + the individual contributor of Q2 2023 of Northwestern Mutual’s \ + web and mobile engineers for having decreased the entire client \ + website’s LCP by ~500ms. Also decreased the SSI header's size \ + by 57% (2 MB).", + link: "https://northwesternmutual.com", + }, + Job { + company: "Oxidized Systems", + title: "Owner, Software Engineer", + start_year: "2021", + end_year: "Present", + image: "os.png", + tech: ["Rust", "Actix", "TypeScript", "Qwik", "Postgres"], + description: "Previous work includes converting a headless JS app into a \ + Qwik/ Qwik-City (TypeScript) frontend and an Actix (Rust) backend \ + for web and native mobile clients to consume.

The \ + frontend scores \ + across every Lighthouse metric on both web and mobile. \ + The backend test coverage is over 65%.", + link: "https://oxidized.systems", + }, + Job { + company: "Catholic Charities of St. Paul and Minneapolis", + title: "Software Developer/ Administrator", + start_year: "2017", + end_year: "2022", + image: "ccspm.webp", + tech: ["Python", "Django", "Flask", "Postgres", "HTMX"], + description: "I built and maintained internal web apps (Flask and \ + Django) for critical agency wide functions, e.g. critical \ + incidents, employee management. Also administrated and built out \ + instances of SharePoint and EHR (Credible).", + link: "https://cctwincities.org", + }, +]; diff --git a/src/lib.rs b/src/lib.rs index 6cf83d9..26e43af 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,7 @@ mod configuration; mod frontmatter; mod helpers; +mod job; mod project; mod routes; @@ -15,6 +16,7 @@ use tower_http::trace::TraceLayer; pub use configuration::get_configuration; pub use frontmatter::FrontMatter; +use job::{Job, JOBS}; pub use project::Project; lazy_static! { @@ -36,6 +38,7 @@ lazy_static! { pub struct AppState { posts: Vec, projects: Vec, + jobs: &'static [Job; 3], } pub fn startup() -> Result { @@ -68,7 +71,11 @@ pub fn startup() -> Result { Err(e) => Err(format!("Unable to read files in projects directory, {}", e)), }?; - let state = AppState { posts, projects }; + let state = AppState { + posts, + projects, + jobs: &JOBS, + }; let blog_routes = Router::new() .route("/", get(routes::blog)) diff --git a/src/routes/root.rs b/src/routes/root.rs index f1a3e44..5925c78 100644 --- a/src/routes/root.rs +++ b/src/routes/root.rs @@ -2,69 +2,10 @@ use crate::{AppState, TEMPLATES}; use axum::{extract::State, response::Html}; use std::sync::Arc; -#[derive(serde::Serialize)] -struct Job { - company: &'static str, - title: &'static str, - start_year: &'static str, - end_year: &'static str, - image: &'static str, - tech: Vec<&'static str>, - description: &'static str, - link: &'static str, -} - /// Handler to return the website's index and display /// a certain number of posts from the app's state. pub async fn root(State(state): State>) -> Html { let mut context = tera::Context::new(); - let jobs: [Job; 3] = [ - Job { - company: "Northwestern Mutual", - title: "Software Engineer", - start_year: "2022", - end_year: "Present", - image: "nm.webp", - tech: vec!["React", "Redux", "TypeScript", "Express", "Graphql"], - description: "I work on the client website building new products, \ - supporting legacy apps, and contributing to interal libraries \ - to support easier development. Helped transition the org to \ - Graphql. Lead the team in testing and performance strategies \ - for our React code and subgraph.

Was recognized as \ - the individual contributor of Q2 2023 of Northwestern Mutual’s \ - web and mobile engineers for having decreased the entire client \ - website’s LCP by ~500ms. Also decreased the SSI header's size \ - by 57% (2 MB).", - link: "https://northwesternmutual.com", - }, - Job { - company: "Shorewood Tech", - title: "Software Engineer (contract)", - start_year: "2021", - end_year: "Present", - image: "st.webp", - tech: vec!["Rust", "Actix", "TypeScript", "Qwik", "Postgres"], - description: "I was contracted to convert a headless JS app into a \ - Qwik/ Qwik-City frontend and an Actix backend for the web and \ - native mobile clients to consume.

The frontend scores perfectly on \ - Google's Lighthouse metrics for web and mobile. The backend test \ - coverage is over 65%.", - link: "https://shorewoodtech.com", - }, - Job { - company: "Catholic Charities of St. Paul and Minneapolis", - title: "Software Developer/ Administrator", - start_year: "2017", - end_year: "2022", - image: "ccspm.webp", - tech: vec!["Python", "Django", "Flask", "Postgres"], - description: "I built and maintained internal web apps (Flask and \ - Django) for critical agency wide functions, e.g. critical \ - incidents, employee management. Also administrated and built out \ - instances of SharePoint and EHR (Credible).", - link: "https://cctwincities.org", - }, - ]; const NUMBER_OF_POSTS: usize = 3; @@ -74,7 +15,7 @@ pub async fn root(State(state): State>) -> Html { context.insert("posts", &state.posts); } - context.insert("jobs", &jobs); + context.insert("jobs", &state.jobs); match TEMPLATES.render("index.html", &context) { Ok(s) => Html(s),